1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

[CUDA] [doc] Note that you can use std::min/max from device code with C++14.

llvm-svn: 281702
This commit is contained in:
Justin Lebar 2016-09-16 04:14:02 +00:00
parent 3c923e4b92
commit 7fcdd9e34c

View File

@ -132,8 +132,8 @@ Standard library support
In clang and nvcc, most of the C++ standard library is not supported on the In clang and nvcc, most of the C++ standard library is not supported on the
device side. device side.
``math.h`` and ``cmath`` ``<math.h>`` and ``<cmath>``
------------------------ ----------------------------
In clang, ``math.h`` and ``cmath`` are available and `pass In clang, ``math.h`` and ``cmath`` are available and `pass
<https://github.com/llvm-mirror/test-suite/blob/master/External/CUDA/math_h.cu>`_ <https://github.com/llvm-mirror/test-suite/blob/master/External/CUDA/math_h.cu>`_
@ -161,8 +161,8 @@ available.
std::sinf(0.); // nvcc - no such function std::sinf(0.); // nvcc - no such function
} }
``std::complex`` ``<std::complex>``
---------------- ------------------
nvcc does not officially support ``std::complex``. It's an error to use nvcc does not officially support ``std::complex``. It's an error to use
``std::complex`` in ``__device__`` code, but it often works in ``__host__ ``std::complex`` in ``__device__`` code, but it often works in ``__host__
@ -182,6 +182,12 @@ implicitly ``__host__ __device__`` (this corresponds to nvcc's
``constexpr``, so you can use these with clang. (nvcc does not currently ``constexpr``, so you can use these with clang. (nvcc does not currently
support C++14.) support C++14.)
``<algorithm>``
---------------
In C++14, many useful functions from ``<algorithm>`` (notably, ``std::min`` and
``std::max``) become constexpr. You can therefore use these in device code,
when compiling with clang.
Detecting clang vs NVCC from code Detecting clang vs NVCC from code
================================= =================================