20 namespace protocol_buffers
33 using value_type =
typename T::value_type;
34 using reference_type =
35 typename std::conditional <
36 std::is_scalar <value_type>::value,
45 : p_tValue {std::move(value)}
54 template <
typename... Args>
56 : default_required_value (
57 std::forward <std::tuple <Args...>> (args),
58 static_cast <
make_indices <
sizeof... (Args)>*> (
nullptr))
63 template <
typename... Args,
typename... Indices>
65 : p_tValue{std::forward <Args> (std::get <Indices::value> (args))...}
71 reference_type
get ()
const
77 void set (value_type value)
79 p_tValue = std::move(value);
89 ~default_required_value () =
default;
92 value_type p_tValue {};
101 typename Specification,
105 std::integral_constant <e_field_type, e_field_type::required>,
106 std::integral_constant <uint32_t, Number>>,
108 protocol_buffer_implementation_wrapper <
110 std::integral_constant <uint32_t, Number>,
120 #include <framework/protocol_buffers/required.inl>