Linux Debian用にC++の簡単なアプリを書いています。

configファイルの読み書きに、Libconfig++を使おうと思うのですが、configファイルの読み込みはできるのですが、内容の更新のやり方が良く分かりません。
https://hyperrealm.github.io/libconfig/libconfig_manual.html

addメソッドは、新しい設定項目と値の追加ようですし、writeFileは有るのですが、値の更新のやり方が分かりません。

よろしくお願いいたします。

#include <iostream>
#include <libconfig.h++>
using namespace std;
using namespace libconfig;

#define CONFIG_FILE "sample_conf"

int main()
{
    Config cfg;
    try{
        cfg.readFile( CONFIG_FILE );
    }
    catch(const FileIOException &fioex){
        cerr << "I/O error while reading file." << endl;
    }
    catch(const ParseException &pex){
        cerr << "Parse error at " << pex.getFile() << ":" << pex.getLine()
            << "-" << pex.getError() << endl;
        return(EXIT_FAILURE);
    }

    int start;
    int end;
    string file_name;

    try{
        if(!(cfg.lookupValue("start", start)))
            throw 1;
        if(!(cfg.lookupValue("end", end)))
            throw 2;
        if(!(cfg.lookupValue("file", file_name)))
            throw 3;

        cout << "Start" << '\t' << start << endl;
        cout << "End" << '\t' << end << endl;
        cout << "File Name" << '\t' << file_name << endl;
    }
    catch(int fError){
        cout << "Itme Error " << fError << endl;
    }

}

sample_conf

start = 10;
end = 20;
file = "settings";

<追記>

const Setting& root = cfg.getRoot();
const Setting& settings = root["settings"];

settings.lookupValue("start") = 30;

として見ましたが、エラーになります。

Invalid arguments '
Candidates are:
bool lookupValue(const char *, bool &)
bool lookupValue(const char *, int &)
bool lookupValue(const char *, unsigned int &)
.
.