2017-02-20 459 views
0

左辺値でなければなりませんはい、私は他のstackoverflowの結果確認されています: C++ initial value of reference to non-const must be an lvalueC++〜非constへの参照の初期値は

ERROR:非constへの参照の初期値は左辺値

でなければなりませんが

コール:

Value& c = getConfigValue("test"); 

機能:

Value* getConfigValue(const char* name) { 
    if (!cleverconfig_loaded) { 
     readConfig(); 
     if (!cleverconfig_loaded) { 
      return NULL; 
     } 
    } 
    if (!cleverconfig.HasMember(name)) { 
     return NULL; 
    } 
    return cleverconfig[name]; 
} 

パラメータ "name"を一定の値にしても、それでも私にこのエラーが出るのですが、なぜ誰に知っていますか?

+1

あなたの関数 'どちらか。 – knivil

+0

この 'cleverconfig'とは何ですか? – Chazeon

+2

'getConfigValue'が' Value * 'を返していて、' Value& 'を初期化したいとします。あなたは '* getConfigValue(" test ")'を意味しましたか? – defube

答えて

0

この関数は、参照にバインドしようとしているポインタを返します。これは動作しません。どのように修正することcleverConfig.operator[]の戻り値の型が何であるかに依存します - const Value&Value*から関数の戻り値の型を変更、またはrefferenceに割り当てることができないポインタを返しgetConfigValue` return *cleverconfig[name];

関連する問題