我有一个这样的结构:
struct VrtxPros{
long idx;
std::vector<std::string> pros;
VrtxPros(const long& _idx=-1, const std::string& val="") : idx(_idx)
{
if ( !val.empty() && val!="" )
pros.push_back(val);
}
};
后来在代码中我像这样使用它:
long idx = 1234;
VrtxPros vp( 2134, std::string("-1") );
if ( margin ) vp.pros[0] = idx;
编译器对此没有问题。我想知道,因为运营商应该提供参考。我找不到一个可以接受 long 的来源operator=
。std::string
为什么代码会编译?