私はこのような構造体を持っています:
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
コードがコンパイルされるのはなぜですか?