私は、コンパイル時に文字列の配列を作成する簡単な方法を探しています。 、私は正常にこのようなコードをコンパイルすることができ、これを使用してコンマ演算子の乱用
Strings();
Strings(const Strings& that);
Strings(const char* s1);
Strings& operator=(const char* s1);
Strings& operator,(const char* s2);
:
はStrings s;
s="Hello","World!";
s="Hello"
一部を返しoperator=
を呼び出してテストするために、私は、以下のメンバーを持っているStrings
をという名前のクラスをまとめますa Strings&
、次にoperator,
が"World!"
と呼ばれます。私は(まだ他のコンパイラを試していませんが、MSVCで)動作させることはできませんどのような
は
Strings s="Hello","World!";
である私はStrings s="Hello"
は、コピーコンストラクタを呼び出すと、その後すべてが振る舞うであろうと、ここで想定したいです最初の例と同じです。しかし、私はエラーを取得する:error C2059: syntax error : 'string'
しかし、これは正常に動作します:
Strings s="Hello";
は、だから私は、コピーコンストラクタは、1つの文字列のため、少なくとも作業を行うことを知っています。何か案は?私は実際にコードを少しきれいにするために2番目の方法を働かせたいと思っています。
うわー、コンマ演算子のオーバーロードについてたくさんのジョークを聞いたことがあります。私は誰かが実際にそれを** **行うことは決してなかった。 –
@Carl:http://www.boost.org/doc/libs/1_40_0/libs/assign/doc/index.html#introについて(非常にOPが望んでいるものに似ています) – UncleBens
* shudder *自分でパットする棺。間違って始めるとどうやってこれをデバッグするのですか? –