C ++〜对非const的引用的初始值必须是左值

时间:2017-02-20 11:45:57

标签: c++

是的,我已检查过其他stackoverflow结果: C++ initial value of reference to non-const must be an lvalue

错误:对非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 个答案:

答案 0 :(得分:0)

该函数返回一个指针,您尝试将其绑定到引用。这不行。如何修复取决于cleverConfig.operator[]的返回类型 - 将函数的返回类型从Value*更改为const Value&,或return *cleverconfig[name];