VTK-m
2.0
vtkm
exec
arg
ExecutionSignatureTagBase.h
Go to the documentation of this file.
1
//============================================================================
2
// Copyright (c) Kitware, Inc.
3
// All rights reserved.
4
// See LICENSE.txt for details.
5
//
6
// This software is distributed WITHOUT ANY WARRANTY; without even
7
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8
// PURPOSE. See the above copyright notice for more information.
9
//============================================================================
10
#ifndef vtk_m_exec_arg_ExecutionSignatureTagBase_h
11
#define vtk_m_exec_arg_ExecutionSignatureTagBase_h
12
13
#include <
vtkm/StaticAssert.h
>
14
#include <
vtkm/internal/ExportMacros.h
>
15
16
#include <type_traits>
17
18
namespace
vtkm
19
{
20
namespace
exec
21
{
22
namespace
arg
23
{
24
37
struct
ExecutionSignatureTagBase
38
{
39
};
40
41
namespace
internal
42
{
43
44
template
<
typename
ExecutionSignatureTag>
45
struct
ExecutionSignatureTagCheck
46
{
47
static
constexpr
bool
Valid =
48
std::is_base_of<vtkm::exec::arg::ExecutionSignatureTagBase, ExecutionSignatureTag>::value;
49
};
50
51
}
// namespace internal
52
58
#define VTKM_IS_EXECUTION_SIGNATURE_TAG(tag) \
59
VTKM_STATIC_ASSERT_MSG(::vtkm::exec::arg::internal::ExecutionSignatureTagCheck<tag>::Valid, \
60
"Provided a type that is not a valid ExecutionSignature tag.")
61
}
62
}
63
}
// namespace vtkm::exec::arg
64
65
#endif //vtk_m_exec_arg_ExecutionSignatureTagBase_h
vtkm
Groups connected points that have the same field value.
Definition:
Atomic.h:19
vtkm::exec::arg::ExecutionSignatureTagBase
The base class for all tags used in an ExecutionSignature.
Definition:
ExecutionSignatureTagBase.h:37
ExportMacros.h
StaticAssert.h
Generated by
1.8.17