来自"CoreGraphics/CGBase.h":
#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
# define CGFLOAT_IS_DOUBLE 1
# define CGFLOAT_MIN DBL_MIN
# define CGFLOAT_MAX DBL_MAX
#else
# define CGFLOAT_TYPE float
# define CGFLOAT_IS_DOUBLE 0
# define CGFLOAT_MIN FLT_MIN
# define CGFLOAT_MAX FLT_MAX
#endif
Run Code Online (Sandbox Code Playgroud)
Apple为什么要这样做?有什么好处?
我似乎只能想到缺点.请赐教.
我正在尝试使用COSA SDK 5.5 RC和Mac OS X 10.8上的g ++ 4.7编译一些代码.如果我理解正确,CUDA 5.5应该与g ++ 4.7一起使用.查看/usr/local/cuda/include/host_config.h它甚至可以使用g ++ 4.8.
关于g ++ 4.8:我试着编译以下程序:
// example.cu
#include <stdio.h>
int main(int argc, char** argv) {
printf("Hello World!\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但它失败了:
$ nvcc example.cu -ccbin=g++-4.8
/usr/local/Cellar/gcc48/4.8.1/gcc/include/c++/4.8.1/cstdlib(178): error: identifier "__int128" is undefined
/usr/local/Cellar/gcc48/4.8.1/gcc/include/c++/4.8.1/cstdlib(179): error: identifier "__int128" is undefined
2 errors detected in the compilation of "/tmp/tmpxft_00007af2_00000000-6_example.cpp1.ii".
Run Code Online (Sandbox Code Playgroud)
相同的程序使用g ++ 4.7编译和运行:
$ nvcc example.cu -ccbin=g++-4.7
$ ./a.out
Hello World!
Run Code Online (Sandbox Code Playgroud)
但如果我包括<limits> ......
// example_limits.cu
#include <stdio.h>
#include <limits>
int main(int argc, char** …Run Code Online (Sandbox Code Playgroud)