コンパイル時に文字列の配列を作成する簡単な方法を探しています。Strings
テストのために、次のメンバーを持つという名前のクラスをまとめました。
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&
から、operator,
for を呼び出す getを呼び出します"World!"
。
私がうまくいかないのは(MSVCでは、まだ他のコンパイラを試していません)
Strings s="Hello","World!";
Strings s="Hello"
ここでは、コピー コンストラクターが呼び出され、すべてが最初の例と同じように動作すると仮定します。しかし、私はエラーが発生します:error C2059: syntax error : 'string'
ただし、これは正常に機能します。
Strings s="Hello";
したがって、コピー コンストラクターが少なくとも 1 つの文字列に対して機能することはわかっています。何か案は?コードをもう少しきれいにするために、2番目の方法を機能させたいと思います。