Viskores
1.0
viskores
exec
arg
ExecutionSignatureTagBase.h
Go to the documentation of this file.
1
//============================================================================
2
// The contents of this file are covered by the Viskores license. See
3
// LICENSE.txt for details.
4
//
5
// By contributing to this file, all contributors agree to the Developer
6
// Certificate of Origin Version 1.1 (DCO 1.1) as stated in DCO.txt.
7
//============================================================================
8
9
//============================================================================
10
// Copyright (c) Kitware, Inc.
11
// All rights reserved.
12
// See LICENSE.txt for details.
13
//
14
// This software is distributed WITHOUT ANY WARRANTY; without even
15
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16
// PURPOSE. See the above copyright notice for more information.
17
//============================================================================
18
#ifndef viskores_exec_arg_ExecutionSignatureTagBase_h
19
#define viskores_exec_arg_ExecutionSignatureTagBase_h
20
21
#include <
viskores/StaticAssert.h
>
22
#include <
viskores/internal/ExportMacros.h
>
23
24
#include <type_traits>
25
26
namespace
viskores
27
{
28
namespace
exec
29
{
30
namespace
arg
31
{
32
45
struct
ExecutionSignatureTagBase
46
{
47
};
48
49
namespace
internal
50
{
51
52
template
<
typename
ExecutionSignatureTag>
53
struct
ExecutionSignatureTagCheck
54
{
55
static
constexpr
bool
Valid =
56
std::is_base_of<viskores::exec::arg::ExecutionSignatureTagBase, ExecutionSignatureTag>::value;
57
};
58
59
}
// namespace internal
60
66
#define VISKORES_IS_EXECUTION_SIGNATURE_TAG(tag) \
67
VISKORES_STATIC_ASSERT_MSG( \
68
::viskores::exec::arg::internal::ExecutionSignatureTagCheck<tag>::Valid, \
69
"Provided a type that is not a valid ExecutionSignature tag.")
70
}
71
}
72
}
// namespace viskores::exec::arg
73
74
#endif //viskores_exec_arg_ExecutionSignatureTagBase_h
ExportMacros.h
viskores
Groups connected points that have the same field value.
Definition:
Atomic.h:27
viskores::exec::arg::ExecutionSignatureTagBase
The base class for all tags used in an ExecutionSignature.
Definition:
ExecutionSignatureTagBase.h:45
StaticAssert.h
Generated by
1.8.17