github.com/searKing/golang/go@v1.2.117/runtime/cgosymbolizer/include/boost/config/compiler/nvcc.hpp (about)

     1  //  (C) Copyright Eric Jourdanneau, Joel Falcou 2010
     2  //  Use, modification and distribution are subject to the 
     3  //  Boost Software License, Version 1.0. (See accompanying file 
     4  //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     5  
     6  //  See http://www.boost.org for most recent version.
     7  
     8  //  NVIDIA CUDA C++ compiler setup
     9  
    10  #ifndef BOOST_COMPILER
    11  #  define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
    12  #endif
    13  
    14  #if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__)
    15  #  define BOOST_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__)
    16  #else
    17  // We don't really know what the CUDA version is, but it's definitely before 7.5:
    18  #  define BOOST_CUDA_VERSION 7000000
    19  #endif
    20  
    21  // NVIDIA Specific support
    22  // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
    23  #define BOOST_GPU_ENABLED __host__ __device__
    24  
    25  // A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions
    26  // https://svn.boost.org/trac/boost/ticket/11897
    27  // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance
    28  // check is enough to detect versions < 7.5
    29  #if BOOST_CUDA_VERSION < 7050000
    30  #   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
    31  #endif
    32  // The same bug is back again in 8.0:
    33  #if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000)
    34  #   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
    35  #endif
    36  // CUDA (8.0) has no constexpr support in msvc mode:
    37  #if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000)
    38  #  define BOOST_NO_CXX11_CONSTEXPR
    39  #endif
    40  
    41  #ifdef __CUDACC__
    42  //
    43  // When compiing .cu files, there's a bunch of stuff that doesn't work with msvc:
    44  //
    45  #if defined(_MSC_VER)
    46  #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
    47  #  define BOOST_NO_CXX11_UNICODE_LITERALS
    48  #endif
    49  //
    50  // And this one effects the NVCC front end,
    51  // See https://svn.boost.org/trac/boost/ticket/13049
    52  //
    53  #if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000)
    54  #  define BOOST_NO_CXX11_NOEXCEPT
    55  #endif
    56  
    57  #endif
    58