1
私持っている私はこのような何か使用してプログラムの先頭で、それを初期化する必要があり、私のC++プログラムで、今のためのルックアップテーブル:とにかく、私はこれを行うことができますがあれば、私はちょうど疑問に思ってコンパイル時に静的const std :: mapを初期化しますか?
static const map<string, int> m;
m["a"] = 1;
m["b"] = 2;
...
を初期化処理は実行時ではなくコンパイル時に行われますか?私はこれが私のプログラムに対するパフォーマンスの影響はごくわずかであることを理解しています。私は、現在のC++ 11/14/17セマンティックの範囲では可能かどうか不思議です。
あなたは何をしていても、実行時に初期化が行われますが、[リスト初期化](http://en.cppreference.com/w/cpp/language/list_initialization)を使用すると、より簡単で慣用的に使用できます。 –
動的メモリの割り当ては 'constexpr'ルーチンでは許されないものの1つで、' std :: map'はそれを避けることができません。 –
'静的constマップ m {{" a "、1}、{" b "、2}};'しかし、実行時にはまだあります。 –
Jarod42