提升元组和stl向量编译错误

时间:2012-11-13 18:21:53

标签: c++ boost

以下行不会编译错误:

No viable overloaded '='



std::string myString;
float myFloat;
boost::tuple<const std::string&, float> myTuple 
    = boost::tuple<const std::string&, float>(myString, myFloat);
std::vector<boost::tuple<const std::string&, float> > myVector;
myVector.push_back(myTuple);

有人有线索吗? 提示:如果我替换“const std :: string&amp;”通过一个简单的std :: string,一切都很好。

1 个答案:

答案 0 :(得分:3)

向量的成员必须是可复制的(C ++ 98)或至少是可移动的(C ++ 11)。引用不是。