github.com/searKing/golang/go@v1.2.117/os/signal/cgo/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  #if !defined(__clang__) || defined(__NVCC__)
    26  // A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions
    27  // https://svn.boost.org/trac/boost/ticket/11897
    28  // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance
    29  // check is enough to detect versions < 7.5
    30  #if BOOST_CUDA_VERSION < 7050000
    31  #   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
    32  #endif
    33  // The same bug is back again in 8.0:
    34  #if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000)
    35  #   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
    36  #endif
    37  // CUDA (8.0) has no constexpr support in msvc mode:
    38  #if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000)
    39  #  define BOOST_NO_CXX11_CONSTEXPR
    40  #endif
    41  
    42  #endif
    43  
    44  #ifdef __CUDACC__
    45  //
    46  // When compiing .cu files, there's a bunch of stuff that doesn't work with msvc:
    47  //
    48  #if defined(_MSC_VER)
    49  #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
    50  #  define BOOST_NO_CXX11_UNICODE_LITERALS
    51  #endif
    52  //
    53  // And this one effects the NVCC front end,
    54  // See https://svn.boost.org/trac/boost/ticket/13049
    55  //
    56  #if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000)
    57  #  define BOOST_NO_CXX11_NOEXCEPT
    58  #endif
    59  
    60  #endif
    61