Viskores
1.0
viskores
cont
arg
ControlSignatureTagBase.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_cont_arg_ControlSignatureTagBase_h
19
#define viskores_cont_arg_ControlSignatureTagBase_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
cont
29
{
30
namespace
arg
31
{
32
44
struct
ControlSignatureTagBase
45
{
46
};
47
48
namespace
internal
49
{
50
51
template
<
typename
ControlSignatureTag>
52
struct
ControlSignatureTagCheck
53
{
54
static
constexpr
bool
Valid =
55
std::is_base_of<viskores::cont::arg::ControlSignatureTagBase, ControlSignatureTag>::value;
56
};
57
58
}
// namespace internal
59
65
#define VISKORES_IS_CONTROL_SIGNATURE_TAG(tag) \
66
VISKORES_STATIC_ASSERT_MSG( \
67
::viskores::cont::arg::internal::ControlSignatureTagCheck<tag>::Valid, \
68
"Provided a type that is not a valid ControlSignature tag.")
69
}
70
}
71
}
// namespace viskores::cont::arg
72
73
#endif //viskores_cont_arg_ControlSignatureTagBase_h
viskores::cont::arg::ControlSignatureTagBase
The base class for all tags used in a ControlSignature.
Definition:
ControlSignatureTagBase.h:44
ExportMacros.h
viskores
Groups connected points that have the same field value.
Definition:
Atomic.h:27
StaticAssert.h
Generated by
1.8.17