Commit 23c5f118 authored by Robert Maynard's avatar Robert Maynard
Browse files

vtk-m brigand nows knows what workaround are only needed for CUDA 9.

Some CUDA 9 compiler issues are fixed in CUDA 10.
parent 36ca0079
......@@ -24,12 +24,19 @@
#define BRIGAND_COMP_CLANG
#endif
#endif
#if defined(__CUDACC__)
#if __CUDACC_VER_MAJOR__ == 9
#define BRIGAND_COMP_CUDA_9
#endif
#if __CUDACC_VER_MAJOR__ >= 9
#define BRIGAND_COMP_CUDA_9PLUS
#endif
#define BRIGAND_COMP_CUDA
#endif
#include <type_traits>
namespace brigand
{
......@@ -259,9 +266,12 @@ namespace brigand
};
template<std::size_t N, typename Seq> struct at_impl;
#if defined(BRIGAND_COMP_CUDA_9PLUS) || defined(BRIGAND_COMP_INTEL)
//Both CUDA 9 and the Intel 18 compiler series have a problem deducing the
//type so we are just going
#if defined(BRIGAND_COMP_CUDA_9) || defined(BRIGAND_COMP_INTEL)
//Both CUDA 9 and the Intel 18 compiler series have a problem when
//at_impl ::type typedef is produced through inheritance of a `T`
//that is deduced through an unimplemented static functions return type.
//So we don't do the inherit trick, but instead manually construct
//a ::type typedef ourself.
template <std::size_t N, template <typename...> class L, class... Ts>
struct at_impl<N, L<Ts...>>
{
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment