プリミティブ型にはコンストラクターがないことが何度も再ハッシュされています。たとえば、これ_barは次の呼び出し時に 0 に初期化されませんFoo()。
class Foo{
int _bar;
};
したがって、明らかにint()コンストラクタではありません。しかし、その名前は何ですか?
この例では、次のようになりますi: (constructed? initialized? fooed?)
for(int i{}; i < 13; ++i)
Loki Asariは、このテクニックには何らかの名前があると述べています。
マイク・シーモアに応じて編集:
#include <iostream>
using namespace std;
class Foo{
int _bar;
public:
void printBar(){ cout << _bar << endl; }
};
int main()
{
Foo foo;
foo.printBar();
Foo().printBar();
return 0;
}
このコードを Visual Studio 2013 で実行すると、次の結果が得られます。
3382592
3382592
興味深いことに、gcc 4.8.1 では次の結果が得られます。
134514651
0