31#ifndef _STLP_INTERNAL_PAIR_H
32#define _STLP_INTERNAL_PAIR_H
34#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
35# ifndef _STLP_TYPE_TRAITS_H
39# if !defined (_STLP_MOVE_CONSTRUCT_FWK_H) && !defined (_STLP_NO_MOVE_SEMANTIC)
46template <
class _T1,
class _T2>
53#if defined (_STLP_CONST_CONSTRUCTOR_BUG)
60#if defined (_STLP_MEMBER_TEMPLATES)
61 template <
class _U1,
class _U2>
67#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
76template <
class _T1,
class _T2>
80template <
class _T1,
class _T2>
86#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
87template <
class _T1,
class _T2>
89{
return !(__x == __y); }
91template <
class _T1,
class _T2>
95template <
class _T1,
class _T2>
97{
return !(__y < __x); }
99template <
class _T1,
class _T2>
101{
return !(__x < __y); }
104#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) && !defined (_STLP_NO_EXTENSIONS)
105template <
class _T1,
class _T2,
int _Sz>
107 _T2
const (&__y)[_Sz])
110template <
class _T1,
class _T2,
int _Sz>
115template <
class _T1,
class _T2,
int _Sz1,
int _Sz2>
117 _T2
const (&__y)[_Sz2]) {
119 static_cast<_T2
const*
>(__y));
123template <
class _T1,
class _T2>
129#if defined (_STLP_USE_NAMESPACES) || !defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
134{
return !(__x == __y); }
142{
return !(__y < __x); }
146{
return !(__x < __y); }
151#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
154template <
class _T1,
class _T2>
158 typedef typename _Land2<
typename _T1Traits::has_trivial_default_constructor,
160 typedef typename _Land2<
typename _T1Traits::has_trivial_copy_constructor,
162 typedef typename _Land2<
typename _T1Traits::has_trivial_assignment_operator,
164 typedef typename _Land2<
typename _T1Traits::has_trivial_destructor,
169# if !defined (_STLP_NO_MOVE_SEMANTIC)
170template <
class _T1,
class _T2>
_STLP_TYPENAME_ON_RETURN_TYPE _MoveSourceTraits< _Tp >::_Type _AsMoveSource(_Tp &src)
_STLP_END_NAMESPACE _STLP_BEGIN_RELOPS_NAMESPACE bool _STLP_CALL operator!=(const _Tp &__x, const _Tp &__y)
bool _STLP_CALL operator<(const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y)
bool _STLP_CALL operator==(const pair< _T1, _T2 > &__x, const pair< _T1, _T2 > &__y)
bool _STLP_CALL operator<=(const _Tp &__x, const _Tp &__y)
bool _STLP_CALL operator>=(const _Tp &__x, const _Tp &__y)
pair< _T1, _T2 > _STLP_CALL make_pair(_T1 __x, _T2 __y)
bool _STLP_CALL operator>(const _Tp &__x, const _Tp &__y)
void get(int argc, const char *argv[])
#define _STLP_END_RELOPS_NAMESPACE
#define __TRIVIAL_DESTRUCTOR(__type)
#define _STLP_BEGIN_RELOPS_NAMESPACE
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
__bool2type< pod >::_Ret is_POD_type
__bool2type< trivial_destructor >::_Ret has_trivial_destructor
__bool2type< trivial_constructor >::_Ret has_trivial_default_constructor
__bool2type< trivial_copy >::_Ret has_trivial_copy_constructor
__bool2type< trivial_assign >::_Ret has_trivial_assignment_operator
pair(const _T1 &__a, const _T2 &__b)