Linux上的Visual Studio 2012编译器替代方案?

左杰麦

几天前我切换到了Linux,但仍无法移植我的项目。出于某种原因,无论我使用的是clang ++还是gcc 4.8,编译器都抱怨将原子与GLM-Library中的向量一起使用(之类的:)atomic<glm::vec3>我尝试设置-std=c++11-std=gnu++11,gcc不接受,而g ++ / clang ++不在乎。我知道这不是我的代码,因为它可以在Windows和Visual Studio 2012上运行。

所以现在我的问题是,是否有VS2012编译器的替代品,以便我的代码可以正常工作?我也曾想尝试过gcc 4.9,但我真的不知道如何获得它。

lang错误消息:

/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/atomic|166|error: exception specification of explicitly defaulted default constructor does not match the calculated one|

g ++错误消息:

/usr/include/c++/4.8/atomic|167|error: function ‘std::atomic<_Tp>::atomic() [with _Tp = glm::detail::tvec3<float>]’ defaulted on its first declaration with an exception-specification that differs from the implicit declaration ‘std::atomic<glm::detail::tvec3<float> >::atomic()’|
凯西

glm::vec3是type的typedef tvec<float, T>tvec具有用户提供的赋值运算符,因此它不能被简单地复制,因此不能与一起使用std::atomic该代码使用VS2012进行编译,因为Microsoft的标准库实现无法诊断std::atomic<T>non- TriviallyCopyable的实例化T与任何未定义的行为一样,它可以编译的事实并不意味着它可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章