Libconfigの使い方


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

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

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

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

[code]

    #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;
        }
    
    }
    
[/code]

sample_conf

[code]

    start = 10;
    end = 20;
    file = "settings";
    
[/code]

＜追記＞

[code]

    const Setting& root = cfg.getRoot();
    const Setting& settings = root["settings"];
    
    settings.lookupValue("start") = 30;
    
[/code]

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

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




> Method on Setting: Setting & operator= (bool value)  
>  Method on Setting: Setting & operator= (int value)  
>  Method on Setting: Setting & operator= (long value)  
>  Method on Setting: Setting & operator= (const long long &value)  
>  Method on Setting: Setting & operator= (float value)  
>  Method on Setting: Setting & operator= (const double &value)  
>  Method on Setting: Setting & operator= (const char *value)  
>  Method on Setting: Setting & operator= (const std::string &value)

を使うのではないでしょうか？

[code]

    cfg.lookup("start") = newValue;
    
[/code]

