3#ifndef pRC_CORE_PARAMETER_PARAMETER_H
4#define pRC_CORE_PARAMETER_PARAMETER_H
15 template<Context C,
class T, Size SA, Size SN, Size SD>
18 template<
class T, Size SA, Size SN, Size SD>
26 template<
class A,
class N,
class D>
31 : mArgument(forward<A>(argument))
32 , mName(forward<N>(
name))
33 , mDescription(forward<
D>(description))
43 constexpr auto &
name()
const
63 constexpr operator T()
const
75 template<
class T, Size SA, Size SN, Size SD>
83 template<
class A,
class N,
class D>
88 : mArgument(forward<A>(argument))
89 , mName(forward<N>(
name))
90 , mDescription(forward<
D>(description))
94 template<
class A,
class N,
class D>
99 T const &defaultValue)
100 : mArgument(forward<A>(argument))
101 , mName(forward<N>(
name))
102 , mDescription(forward<
D>(description))
103 , mValue(defaultValue)
108 template<
class A,
class N,
class D>
113 T (*convert)(
char const *
const))
114 : mArgument(forward<A>(argument))
115 , mName(forward<N>(
name))
116 , mDescription(forward<
D>(description))
121 template<
class A,
class N,
class D>
126 T (*convert)(
char const *
const),
T const &defaultValue)
127 : mArgument(forward<A>(argument))
128 , mName(forward<N>(
name))
129 , mDescription(forward<
D>(description))
130 , mValue(defaultValue)
167 mValue = mConvert(
value);
176 constexpr operator T()
const
189 (
char const *
const) = [](
char const *
const value) ->
T {
192 return std::atof(
value);
194 else if constexpr(IsIntegral<T> || IsInteger<T>)
196 return std::atoll(
value);
198 else if constexpr(IsBool<T>)
200 return std::strcmp(
value,
"true") == 0;
209 template<Context C,
class T,
class A,
class N,
class D>
217 D &&description,
T const &defaultValue)
219 using SA =
decltype(
String(declval<A>()));
220 using SN =
decltype(
String(declval<N>()));
221 using SD =
decltype(
String(declval<D>()));
224 forward<A>(argument), forward<N>(
name), forward<D>(description),
228 template<Context C,
class T,
class A,
class N,
class D>
238 using SA =
decltype(
String(declval<A>()));
239 using SN =
decltype(
String(declval<N>()));
240 using SD =
decltype(
String(declval<D>()));
243 forward<A>(argument), forward<N>(
name), forward<D>(description));
246 template<Context C,
class T,
class A,
class N,
class D>
253 D &&description,
T (*convert)(
char const *
const))
255 using SA =
decltype(
String(declval<A>()));
256 using SN =
decltype(
String(declval<N>()));
257 using SD =
decltype(
String(declval<D>()));
260 forward<A>(argument), forward<N>(
name), forward<D>(description),
264 template<Context C,
class T,
class A,
class N,
class D>
271 D &&description,
T (*convert)(
char const *
const),
T const &defaultValue)
273 using SA =
decltype(
String(declval<A>()));
274 using SN =
decltype(
String(declval<N>()));
275 using SD =
decltype(
String(declval<D>()));
278 forward<A>(argument), forward<N>(
name), forward<D>(description),
279 convert, defaultValue);
pRC::Size const D
Definition CalculatePThetaTests.cpp:9
Parameter(A &&argument, N &&name, D &&description, T const &value)
Definition parameter.hpp:30
Constant< pRC::Context, pRC::Context::CompileTime > Context
Definition parameter.hpp:22
constexpr auto & name() const
Definition parameter.hpp:43
constexpr auto & description() const
Definition parameter.hpp:48
constexpr auto & argument() const
Definition parameter.hpp:38
constexpr auto operator()() const
Definition parameter.hpp:58
constexpr auto & value() const
Definition parameter.hpp:53
Parameter(A &&argument, N &&name, D &&description, T const &defaultValue)
Definition parameter.hpp:98
constexpr auto & isSet() const
Definition parameter.hpp:160
constexpr auto & name() const
Definition parameter.hpp:141
Parameter(A &&argument, N &&name, D &&description)
Definition parameter.hpp:87
constexpr auto & value() const
Definition parameter.hpp:151
Constant< pRC::Context, pRC::Context::RunTime > Context
Definition parameter.hpp:79
constexpr auto & description() const
Definition parameter.hpp:146
constexpr auto operator()() const
Definition parameter.hpp:171
Parameter(A &&argument, N &&name, D &&description, T(*convert)(char const *const))
Definition parameter.hpp:112
constexpr auto parseValue(char const *const value)
Definition parameter.hpp:165
Parameter(A &&argument, N &&name, D &&description, T(*convert)(char const *const), T const &defaultValue)
Definition parameter.hpp:125
constexpr auto & argument() const
Definition parameter.hpp:136
Definition parameter.hpp:16
Definition concepts.hpp:37
pRC::Float<> T
Definition externs_nonTT.hpp:1
int value
Definition gmock-actions_test.cc:1714
static void error(Xs &&...args)
Definition log.hpp:14
Definition cholesky.hpp:10
static constexpr auto parameter(A &&argument, N &&name, D &&description, T const &defaultValue)
Definition parameter.hpp:216
static constexpr auto name()
Definition type_name.hpp:11
std::integral_constant< T, V > Constant
Definition basics.hpp:38
String(char const &) -> String< 1 >
Definition gtest_pred_impl_unittest.cc:54