OGS
Invoke.h
Go to the documentation of this file.
1
10
#pragma once
11
12
#include <boost/mp11.hpp>
13
14
namespace
ProcessLib::LargeDeformation
15
{
16
namespace
detail
17
{
18
template
<
typename
Result,
typename
Class,
typename
... Args>
19
constexpr
bool
areEvalArgumentTypesUnique
(Result (Class::*)(Args...))
20
{
21
using namespace
boost::mp11
;
22
return
mp_is_set<
23
mp_transform<std::remove_cvref_t, mp_list<Args...>>>::value;
24
}
25
26
template
<
typename
Result,
typename
Class,
typename
... Args>
27
constexpr
bool
areEvalArgumentTypesUnique(Result (Class::*)(Args...)
const
)
28
{
29
using namespace
boost::mp11
;
30
return
mp_is_set<
31
mp_transform<std::remove_cvref_t, mp_list<Args...>>>::value;
32
}
33
}
// namespace detail
34
40
template
<
typename
T>
41
constexpr
bool
areEvalArgumentTypesUnique
()
42
{
43
return
detail::areEvalArgumentTypesUnique
(&T::eval);
44
}
45
48
template
<
typename
Model>
49
constexpr
void
assertEvalArgsUnique
(Model
const
&)
50
{
51
static_assert
(
areEvalArgumentTypesUnique<std::remove_cvref_t<Model>
>());
52
}
53
54
}
// namespace ProcessLib::LargeDeformation
ProcessLib::LargeDeformation::detail::areEvalArgumentTypesUnique
constexpr bool areEvalArgumentTypesUnique(Result(Class::*)(Args...))
Definition
Invoke.h:19
ProcessLib::LargeDeformation
Definition
Base.h:21
ProcessLib::LargeDeformation::areEvalArgumentTypesUnique
constexpr bool areEvalArgumentTypesUnique()
Definition
Invoke.h:41
ProcessLib::LargeDeformation::assertEvalArgsUnique
constexpr void assertEvalArgsUnique(Model const &)
Definition
Invoke.h:49
boost::mp11
Definition
BoostMP11Utils.h:15
detail
Definition
ElementCoordinatesMappingLocal.cpp:22
ProcessLib
LargeDeformation
ConstitutiveRelations
Invoke.h
Generated by
1.12.0