Sco*_*our 0 c c++ linux cuda cmake
我正在构建一个包含cuda代码的cmake项目.我无法编译其中一个包含几个h文件的cuda文件.这是我收到的编译器错误
In file included from /usr/include/c++/4.4/bits/basic_ios.h:39,
from /usr/include/c++/4.4/ios:45,
from /usr/include/c++/4.4/ostream:40,
from /usr/include/c++/4.4/iostream:40,
from /home/pfeifs/Developement/Deform/LinuxDeform/LibDeform/Deform/cutil_comfunc.h:20,
from /home/pfeifs/Developement/Deform/LinuxDeform/LibDeform/Deform/VectorMathDef.h:22,
from /home/pfeifs/Developement/Deform/LinuxDeform/LibDeform/src/Deform/VectorMath.cu:15:
/usr/include/c++/4.4/bits/locale_facets.h:2521:44: error: macro "isspace" passed 2 arguments, but takes just 1
Run Code Online (Sandbox Code Playgroud)
isspace()被定义为需要一个参数<ctype.h>并在其中声明为模板化函数的宏locale_facets.h.(这些都是标准文件.)但是在开始时locale_facets.h,<cctype>包括并且取消 声明宏.
非常感谢对此问题的任何帮助或见解.
不要混合使用C和C++标头.
用于使用两个参数#include <locale>拉入std::isspace模板.使用#include <cctype>了C++的安全包括的ctype.h,不会导致与STL冲突.
如果您正在编写C程序并且不想要或不需要C++,则应该没有问题,包括仅使用一个参数ctype.h的isspace函数.