1

以下行无法编译并出现错误:

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);

有没有人有线索!?提示:如果我用简单的 std::string 替换“const std::string&”,一切都很好。

4

1 回答 1

3

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

于 2012-11-13T18:24:05.340 回答