如果我编码这个
std::map<int, char> example = {
(1, 'a'),
(2, 'b'),
(3, 'c')
};
Run Code Online (Sandbox Code Playgroud)
然后g ++对我说
deducing from brace-enclosed initializer list requires #include <initializer_list>
in C++98 ‘example’ must be initialized by constructor, not by ‘{...}’
Run Code Online (Sandbox Code Playgroud)
这让我很烦,因为构造函数是运行时的,理论上可能会失败.
当然,如果确实如此,它将很快失败并且应该一直这样做,所以我应该快速找到并纠正问题.
但是,我仍然很好奇 - 无论如何在编译时初始化地图,矢量等?
编辑:我应该说我正在为嵌入式系统开发.并非所有处理器都具有C++ 0x编译器.最受欢迎的可能是,但我不想遇到问题并且必须维护2个版本的代码.
至于Boost,我尚未决定.他们在嵌入式系统中使用他们的有限状态机类是多么的愚蠢,所以这就是我在这里编写的事件/事件/状态/ Fsm类.
叹了口气,我想我最好安全地玩,但我希望这个讨论对其他人有帮助.