以下行不会编译错误:
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,一切都很好。
答案 0 :(得分:3)
向量的成员必须是可复制的(C ++ 98)或至少是可移动的(C ++ 11)。引用不是。