1
我有我的C++程序和現在我一直在使用這樣的事情在節目的開頭就初始化一個查找表:在編譯期間初始化靜態常量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'例程的事情之一,和'的std :: map'無法避免。 –
'靜態常量地圖米{{ 「一」,1},{ 「B」,2}};',但它仍然是在運行時。 –
Jarod42