Jon*_*Mee 13 c++ gcc initializer-list c++03 list-initialization
我有一个关于卷括号括号列表的不同含义的问题.
我知道C++ 03不支持C++ 11 initializer_list.然而,即使没有-std=c++11编译器标志,gcc 6.3 也会interpolate使用以下代码正确初始化:
map<string, string> interpolate = { { "F", "a && b && c" }, { "H", "p ^ 2 + w" }, { "K", "H > 10 || e < 5" }, { "J", "F && !K" } };
Run Code Online (Sandbox Code Playgroud)
我被问到为什么这会起作用,我意识到我没有答案.这是一个Brace-Init-List,但我们从初始化标准容器的方式通常是通过initializer_list.那么非C++ 11代码如何完成初始化呢?
Nat*_*ica 32
gcc 6.x-std=gnu++14的默认编译器命令是,因此编译器使用更高版本的C++语言标准隐式编译代码.
您需要手动指定-std=c++03是否要在C++ 03中编译.
| 归档时间: |
|
| 查看次数: |
1450 次 |
| 最近记录: |