OSDN Git Service

[CUDA] [doc] Note that you can use std::min/max from device code with C++14.
authorJustin Lebar <jlebar@google.com>
Fri, 16 Sep 2016 04:14:02 +0000 (04:14 +0000)
committerJustin Lebar <jlebar@google.com>
Fri, 16 Sep 2016 04:14:02 +0000 (04:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281702 91177308-0d34-0410-b5e6-96231b3b80d8

docs/CompileCudaWithLLVM.rst

index 1bd094e..9af9b14 100644 (file)
@@ -132,8 +132,8 @@ Standard library support
 In clang and nvcc, most of the C++ standard library is not supported on the
 device side.
 
-``math.h`` and ``cmath``
-------------------------
+``<math.h>`` and ``<cmath>``
+----------------------------
 
 In clang, ``math.h`` and ``cmath`` are available and `pass
 <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::complex``
-----------------
+``<std::complex>``
+------------------
 
 nvcc does not officially support ``std::complex``.  It's an error to use
 ``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
 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
 =================================