次のコードは で正常にコンパイルされg++
ます。
#include <iostream>
#include <string>
using namespace std;
struct thing
{
int a;
char b;
string name;
};
int main()
{
thing t =
{
a : 23,
b : 'e',
name : "Hello"
};
cout << t.a << endl;
cout << t.b << endl;
cout << t.name << endl;
return 0;
}
C99 に相当するものが C++ でサポートされていないことは知ってい{ .a = 23, .b = 'e', .name = "Hello" }
ますが、上記がサポートされているのはなぜですか? 標準化されていますか?このコンストラクタイディオムの名前は何ですか?
const
上記を概観すると、スレッド セーフ メッセージング (すべておよびメンバー) に使用される不変クラスが多数あるシステムがあるpublic
場合は、名前付きメンバーを使用してそのようなクラスのインスタンスを作成する方がはるかに簡単です。コンストラクターと位置引数の使用。