错误:C ++中struct的初始化无效

时间:2014-02-28 07:10:25

标签: c++ struct compiler-errors initialization const

错误:

  

从类型Assoc<float, std::basic_string<char> >&

的表达式初始化const Assoc<float, std::basic_string<char> >类型的引用无效

代码

Assoc<keyType,valueType>& found = internalStorage.get(find(key));//returns the value of some key

对不起,我知道这不好玩,但我很困惑。

任何想法是什么问题?

1 个答案:

答案 0 :(得分:1)

看起来internalStorage.get()按值返回对象,并且您尝试将非const引用绑定到返回的临时值。

解决此问题的最佳方法取决于您正在尝试做什么(以及internalStorage的类型):

  • 如果您不需要修改found,请参考const(并参阅Does a const reference prolong the life of a temporary?)。
  • 如果您确实需要修改found(这是internalStorage中存储内容的副本),只需删除&
  • 如果您需要修改internalStorage中存储的对象,则可能需要重构代码。