是的,我已检查过其他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”设为常量值,它仍然会给我这个错误,有人知道为什么吗?
答案 0 :(得分:0)
该函数返回一个指针,您尝试将其绑定到引用。这不行。如何修复取决于cleverConfig.operator[]
的返回类型 - 将函数的返回类型从Value*
更改为const Value&
,或return *cleverconfig[name];