我刚刚安装了Visual C ++ 2010 Express,我的印象是默认模式包括C ++ 0x功能和std :: tr1库。
error C2872: 'is_same' : ambiguous symbol
could be 'C:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\type_traits(941) : std::tr1::is_same'
你可以证实吗?如果是这种情况,是否有某种方法可以禁用默认设置?
为什么tr1符号可见?在MS标题内有使用吗?
答案 0 :(得分:2)
是:VC10在std命名空间内提供了一些C ++ 0x特性(auto,decltype,r-value reference等)和std :: tr1,它不是可选的AFAIK。
但是,如果安装了VS910仍然可以使用VS910(没有这些功能)。为此,只需将项目设置中的编译器版本从100(vc10)更改为90(vc9)。在此上下文中,std :: tr1将在std :: tr1名称空间中可用。