私は自分の (ばかげた) スカラー/リスト/ハッシュ (perl のような..) を C++ でまとめています。
スカラーをリストに逆参照しなければならない点に遭遇しましたが、初期化を試みても機能しません。
List
いくつかのデフォルト コンストラクター。そのうちの 5 つは から までの範囲List()
ですList(Scalar, Scalar, Scalar, Scalar)
。
List stuff(1, 2, 3);
Scalar aref = stuff; // List overloads the (Scalar) cast operator
// the following line is the unwanted thing..
List failist = aref; // uses List::List(Scalar), so same as `List failist(aref);`
// however, these work
List thisworks;
thisworks = aref;
thisworks.operator=(aref);
リスト ヘッダー:
class List : public Thing {
std::vector<Scalar> stuff;
public:
List();
List(Scalar s1); // this gets called because initialization
List(Scalar s1, Scalar s2);
List(Scalar s1, Scalar s2, Scalar s3);
List(Scalar s1, Scalar s2, Scalar s3, Scalar s4);
List &operator=(const Scalar &other); // but i want this
/* some getters/setters cut away */
operator Scalar();
};
を使用したいのList mylist = listreference;
ですが、どうすればよいですか?