【发布时间】:2013-04-10 08:05:02
【问题描述】:
几周前I posted this question 收到一条奇怪的错误消息。罪魁祸首是对
我们发现了一个意想不到的丑陋惊喜。模板消歧器是c++11,但是我们需要支持VS2008,不支持。所以我们基本上从在 windows 上编译但在 linux 上不编译的东西变成了在 linux 上编译但在 windows 上不编译的东西。
你知道如何解决吗?具体
- windows 编译器中是否有一个神奇的选项来启用这个 c++11 构造,或者
- 在旧的 c++ 标准中有一种替代方法可以解决这种歧义,也就是交叉编译器,或者
- 如果我们需要使用预处理器,区分两个编译器的预处理器常量(如果有)是什么(gcc 是另一个)
【问题讨论】:
-
. template不是 C++11 构造。 -
.template消除歧义并非特定于 C++ 11 。见cplusplus.com/forum/general/194和womble.decadent.org.uk/c++/template-faq.html第6节, -
如果没有代码和错误信息,就无法判断问题所在。
-
@mark 问题是建议的解决方案不适用于VS2008。
标签: c++ templates visual-studio-2008 g++