I can\'t find which version/which concepts of c++ is/are supported by CUDA 5.0. I could not find any information in the Programming Guide or Reference Guide delivered with t
It does not support gcc 4.7 so some of the c++11 features are not available:
- Non-static data member initializers
- Template aliases :(
- Delegating constructors
- User-defined literals
- Extended friend declarations
- Explicit virtual overrides
The release notes contain a list of support platforms including which versions of GCC are supported, the 5.0 Release Candidate release notes show that the most recent supported GCC is 4.6 for certain distributions (and older for other distributions).
Once you know which GCC version is supported, compare with the GCC C++0x/C++11 feature list.
now if you are asking about Cuda/C++ or the THRUST library . the thrust library is very similar to the stl c++ in regards to the containers, iterators and algorithms , but it s not c++ 11.
nvcc compiles gpu code . nvcc support ( Cuda C and Cuda C++ /thrust ) gcc compile cpu code . gcc ( support C and C++ ) .
Apperently no C++11 features are available in 5.0 RC. nvcc still does not understand C++11 syntax used in the standard includes of gcc 4.6 (see Error while using CUDA and C++11):
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Tue_Jul_31_17:46:14_PDT_2012
Cuda compilation tools, release 5.0, V0.2.1221
$ cat test.cu
int main()
{
}
$ nvcc -Xcompiler "-std=c++0x" test.cu
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h(159): error: identifier "nullptr" is undefined
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h(159): error: expected a ";"
/usr/include/c++/4.6/bits/exception_ptr.h(93): error: incomplete type is not allowed
...