相关疑难解决方法(0)

C++,我可以在编译时静态初始化std :: map吗?

如果我编码这个

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类.

叹了口气,我想我最好安全地玩,但我希望这个讨论对其他人有帮助.

c++ embedded stl

40
推荐指数
4
解决办法
6万
查看次数

标签 统计

c++ ×1

embedded ×1

stl ×1