On 9 July 2014 16:54, Eric Niebler
On 07/09/2014 01:43 AM, Daniel James wrote:
Is CUDA emulating Visual C++? If it is, then you should use _MSC_VER rather than BOOST_MSVC, otherwise it will break again if config ever gets CUDA support. Do you know if it works with CUDA on other platforms?
Honestly, I don't know how the CUDA compiler works. I know it *does* work with CUDA on Linux with gcc. I also know this change was needed on Windows.
It looks like it's pretending to be Visual C++. It's currently fooling config as it doesn't have any support, but if it does in the future then BOOST_MSVC will no longer be defined and this will break again, so I think the correct macro check is: || (defined(__CUDACC__) && defined(_MSC_VER)) Or maybe: || (defined(__NVCC__) && defined(_MSC_VER)) Since that's the compiler identifier.