20 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_NAMED_VALUE_HH 21 #define PALUDIS_GUARD_PALUDIS_UTIL_NAMED_VALUE_HH 1 23 #include <paludis/util/named_value-fwd.hh> 24 #include <paludis/util/tribool.hh> 26 #include <type_traits> 49 template <
typename K_,
typename V_>
52 static_assert(! std::is_reference<V_>::value,
"Tried to make a NamedValue hold a reference");
61 template <
typename T_>
62 NamedValue(
const NamedValue<K_, T_> & v) :
67 template <
typename T_>
68 NamedValue(NamedValue<K_, T_> && v) :
69 _value(
std::move(v()))
73 explicit NamedValue(
const V_ & v) :
78 explicit NamedValue(V_ && v) :
83 NamedValue(
const NamedValue & v) :
88 NamedValue(NamedValue && v) :
89 _value(
std::move(v._value))
93 NamedValue & operator=(
const NamedValue & v)
104 const V_ & operator() ()
const 115 template <
typename T_>
119 template <
typename V_>
120 NamedValue<Name<T_>, V_> operator= (
const V_ & v)
const 122 return NamedValue<Name<T_>, V_>(v);
125 template <
typename V_>
126 NamedValue<Name<T_>,
typename std::remove_reference<V_>::type> operator= (V_ && v)
const 128 return NamedValue<Name<T_>,
typename std::remove_reference<V_>::type>(v);
131 NamedValue<Name<T_>, std::string> operator= (
const char *
const v)
const 133 return NamedValue<Name<T_>, std::string>(std::string(v));
136 NamedValue<Name<T_>, Tribool> operator= (TriboolIndeterminateValueType)
const 138 return NamedValue<Name<T_>, Tribool>(Tribool(indeterminate));
Definition: about_metadata-fwd.hh:23