36 typename Specification,
37 template <
typename>
class Implementation>
45 template <
typename Derived>
79 template <
typename Derived>
80 using type = Implementation <parameters <Derived>>;
98 using value_type =
typename T::value_type;
104 value_type
const&
get ()
const
162 template <
typename... Args>
165 std::forward <std::tuple <Args...>> (args),
166 static_cast <
make_indices <sizeof... (Args)>*> (nullptr))
171 template <
typename... Args,
typename... Indices>
173 :
p_tValue{std::forward <Args> (std::get <Indices::value> (args))...}
196 typename Specification,
201 value_implementation_wrapper <