25 : myFirst(T1()), mySecond(T2()) { }
28 : myFirst(v1), mySecond(
v2) { }
30 template <
class U1 = T1,
class U2 = T2>
33 : myFirst(std::forward<U1>(v1))
34 , mySecond(std::forward<U2>(
v2))
53 template<
typename OS,
typename T1,
typename T2>
55 operator<<(OS &os, const UT_Pair<T1, T2> &p)
57 os <<
"UT_Pair(" << p.myFirst <<
", " << p.mySecond <<
")";
65 struct DefaultClearer;
67 template <
typename S0,
typename S1>
90 static const bool clearNeedsDestruction =
static void clear(Type &v)
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
#define SYS_DEPRECATED_PUSH_DISABLE()
static void clearConstruct(Type *p)
#define SYS_DEPRECATED_POP_DISABLE()
bool operator==(const UT_Pair< T1, T2 > &p) const
bool operator!=(const UT_Pair< T1, T2 > &p) const
GLfloat GLfloat GLfloat v2
#define SYS_DEPRECATED_REPLACE(__V__, __R__)
UT_Pair< int, int > UT_IntPair
Common types.
static bool isClear(const Type &v)