我不知道我在这里做错了什么,但我不能为了我的生活而扼杀编译在VS2012
编译好的现有代码。
包含类似strsafe.h
和xstring
会导致奇怪的编译错误,其中最奇怪的是标准包含文件中间的“缺少关闭括号”。不用说,没有遗漏的支架。此外,move.h
导致clang与
致命错误:函数声明符之后的预期函数体。
保护条款,如
#ifndef _FUNCTIONAL_
#error Must include <functional>
#endif
即使已包含功能,也会抛出错误。
我做错了什么?
答案 0 :(得分:15)
一个编译器附带的头文件通常是针对该编译器实现而定制的,并且不一定能够与不同的编译器一起正常工作。
一般来说,您将无法使用Visual Studio附带的标头和其他编译器。
答案 1 :(得分:6)
RE
“包括像strsafe.h和xstring一样导致奇怪的编译错误,”
那些是Visual C ++标题。
clang可能没有类似的东西。
一个主要问题是你正在使用低级C字符串函数,微软(正确!)认为这些函数存在问题,并且(错误地)说服你被弃用。
改为使用std::string
。