29#ifndef RW_20_TUPLE_H_INCLUDED
30#define RW_20_TUPLE_H_INCLUDED
75#if !defined _RWSTD_NO_RVALUE_REFERENCES
78 : value_ (
std::move (src.value_))
106#if !defined _RWSTD_NO_RVALUE_REFERENCES
110 value_ = std::move (src.value_);
149 return lhs.value () ==
rhs.value ();
155 return lhs.value () <
rhs.value ();
165#define TYPE_NAME(T) \
166template <> const char* type_name_<T>::value = #T;
176#define TYPE_NAME(T, S) \
177template <> const char* type_name_<T>::value = S;
180#define TUPLE std::tuple<long, const char*>
185std::tuple<bool, char, int, double, void*, UserDefined>
192#define TYPE_NAME(T) type_name_<T>::value
199struct fmt_spec {
static const char*
value; };
201#define FMT_SPEC(T, S) \
202template <> const char* fmt_spec<T>::value = #S;
217#define DECAY(T) typename std::decay<T>::type
221#define FMT_SPEC(T) fmt_spec<DECAY (T)>::value
bool operator==(const UserDefined &lhs, const UserDefined &rhs)
bool operator<(const UserDefined &lhs, const UserDefined &rhs)
UserDefined(UserDefined &&src)
UserDefined & operator=(const UserDefined &src)
UserDefined(const UserDefined &src)
static const char * value