mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-25 03:44:04 +08:00
Makefile.am (tr1_headers): Add new tuple_defs.h.
2006-10-16 Douglas Gregor <doug.gregor@gmail.com> * include/Makefile.am (tr1_headers): Add new tuple_defs.h. * include/Makefile.in (tr1_headers): Regenerate. * include/tr1/tuple (tuple): Move declaration to tuple_defs.h. (get): Ditto. (operator==): Ditto. (operator<): Ditto. (operator!=): Ditto. (operator>): Ditto. (operator<=): Ditto. (operator>=): Ditto. (__stripped_tuple_type): Ditto. Include tuple.defs.h * include/tr1/tuple_iterate.h (tuple): Use _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED macro instead of 10 "typename"s. (tuple_element): Use _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS and _GLIBCXX_TYPLE_ALL_TEMPLATE_ARGS instead of 10 parameters/arguments. * include/tr1/tuple_defs.h: New header, contains declarations and definitions for the tuple template with all arguments. * include/tr1/repeat.h (_GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS): New. (_GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED): New. (_GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS): New. (_GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS): New. (_GLIBCXX_TEMPLATE_ARGS_STRIPPED): New. * scripts/gen_includers.pl: Update. * scripts/gen_includers2.pl: New. From-SVN: r117790
This commit is contained in:
parent
5f90c88f61
commit
499c96f56b
@ -1,3 +1,33 @@
|
||||
2006-10-16 Douglas Gregor <doug.gregor@gmail.com>
|
||||
|
||||
* include/Makefile.am (tr1_headers): Add new tuple_defs.h.
|
||||
* include/Makefile.in (tr1_headers): Regenerate.
|
||||
* include/tr1/tuple (tuple): Move declaration to tuple_defs.h.
|
||||
(get): Ditto.
|
||||
(operator==): Ditto.
|
||||
(operator<): Ditto.
|
||||
(operator!=): Ditto.
|
||||
(operator>): Ditto.
|
||||
(operator<=): Ditto.
|
||||
(operator>=): Ditto.
|
||||
(__stripped_tuple_type): Ditto.
|
||||
Include tuple.defs.h
|
||||
* include/tr1/tuple_iterate.h (tuple): Use
|
||||
_GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED macro instead of 10
|
||||
"typename"s.
|
||||
(tuple_element): Use _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS and
|
||||
_GLIBCXX_TYPLE_ALL_TEMPLATE_ARGS instead of 10
|
||||
parameters/arguments.
|
||||
* include/tr1/tuple_defs.h: New header, contains declarations and
|
||||
definitions for the tuple template with all arguments.
|
||||
* include/tr1/repeat.h (_GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS): New.
|
||||
(_GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED): New.
|
||||
(_GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS): New.
|
||||
(_GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS): New.
|
||||
(_GLIBCXX_TEMPLATE_ARGS_STRIPPED): New.
|
||||
* scripts/gen_includers.pl: Update.
|
||||
* scripts/gen_includers2.pl: New.
|
||||
|
||||
2006-10-16 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
PR libstdc++/29095 continued
|
||||
|
@ -47,6 +47,7 @@ subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
|
@ -599,6 +599,7 @@ tr1_headers = \
|
||||
${tr1_srcdir}/stdlib.h \
|
||||
${tr1_srcdir}/tgmath.h \
|
||||
${tr1_srcdir}/tuple \
|
||||
${tr1_srcdir}/tuple_defs.h \
|
||||
${tr1_srcdir}/tuple_iterate.h \
|
||||
${tr1_srcdir}/type_traits \
|
||||
${tr1_srcdir}/type_traits_fwd.h \
|
||||
|
@ -42,6 +42,7 @@ subdir = include
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
@ -819,6 +820,7 @@ tr1_headers = \
|
||||
${tr1_srcdir}/stdlib.h \
|
||||
${tr1_srcdir}/tgmath.h \
|
||||
${tr1_srcdir}/tuple \
|
||||
${tr1_srcdir}/tuple_defs.h \
|
||||
${tr1_srcdir}/tuple_iterate.h \
|
||||
${tr1_srcdir}/type_traits \
|
||||
${tr1_srcdir}/type_traits_fwd.h \
|
||||
|
@ -37,6 +37,12 @@
|
||||
# error Internal error: _GLIBCXX_REPEAT_HEADER must be set
|
||||
#endif /* _GLIBCXX_REPEAT_HEADER */
|
||||
|
||||
#ifndef _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS
|
||||
# define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10
|
||||
# define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED typename, typename, typename, typename, typename, typename, typename, typename, typename, typename
|
||||
# define _GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10
|
||||
#endif
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 0
|
||||
#define _GLIBCXX_COMMA
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS
|
||||
@ -57,6 +63,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT
|
||||
#define _GLIBCXX_TUPLE_ASSIGN
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS
|
||||
@ -70,6 +78,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -111,6 +121,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1)
|
||||
@ -124,6 +136,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -165,6 +179,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2)
|
||||
@ -178,6 +194,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -198,7 +216,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 3
|
||||
#define _GLIBCXX_COMMA ,
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3
|
||||
@ -219,6 +236,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3)
|
||||
@ -232,6 +251,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -252,7 +273,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 4
|
||||
#define _GLIBCXX_COMMA ,
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4
|
||||
@ -273,6 +293,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4)
|
||||
@ -286,6 +308,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -306,7 +330,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 5
|
||||
#define _GLIBCXX_COMMA ,
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5
|
||||
@ -327,6 +350,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5)
|
||||
@ -340,6 +365,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -360,7 +387,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 6
|
||||
#define _GLIBCXX_COMMA ,
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6
|
||||
@ -381,6 +407,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6)
|
||||
@ -394,6 +422,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -414,7 +444,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 7
|
||||
#define _GLIBCXX_COMMA ,
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7
|
||||
@ -435,6 +464,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7)
|
||||
@ -448,6 +479,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -468,7 +501,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 8
|
||||
#define _GLIBCXX_COMMA ,
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8
|
||||
@ -489,6 +521,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass, typename _T8 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type, typename __strip_reference_wrapper<_T8>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8)
|
||||
@ -502,6 +536,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -522,7 +558,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_NUM_ARGS 9
|
||||
#define _GLIBCXX_COMMA ,
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9
|
||||
@ -543,6 +578,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8, typename __add_c_ref<_T9>::type __a9
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8), _M_arg9(__in._M_arg9)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8; _M_arg9 = __in._M_arg9;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass, typename _T8 = _NullClass, typename _T9 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type, typename __strip_reference_wrapper<_T8>::__type, typename __strip_reference_wrapper<_T9>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8), ref(__a9)
|
||||
@ -556,6 +593,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -576,7 +615,6 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#define _GLIBCXX_LAST_INCLUDE
|
||||
#define _GLIBCXX_NUM_ARGS 10
|
||||
#define _GLIBCXX_COMMA ,
|
||||
@ -598,6 +636,8 @@
|
||||
#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8, typename __add_c_ref<_T9>::type __a9, typename __add_c_ref<_T10>::type __a10
|
||||
#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8), _M_arg9(__in._M_arg9), _M_arg10(__in._M_arg10)
|
||||
#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8; _M_arg9 = __in._M_arg9; _M_arg10 = __in._M_arg10;
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass, typename _T8 = _NullClass, typename _T9 = _NullClass, typename _T10 = _NullClass
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type, typename __strip_reference_wrapper<_T8>::__type, typename __strip_reference_wrapper<_T9>::__type, typename __strip_reference_wrapper<_T10>::__type
|
||||
#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10
|
||||
#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10
|
||||
#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8), ref(__a9), ref(__a10)
|
||||
@ -611,6 +651,8 @@
|
||||
#undef _GLIBCXX_REF_WRAP_PARAMS
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_U
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_U
|
||||
#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
|
||||
#undef _GLIBCXX_TUPLE_ASSIGN
|
||||
#undef _GLIBCXX_TUPLE_COPY_INIT
|
||||
#undef _GLIBCXX_TUPLE_ADD_CREF
|
||||
@ -631,6 +673,5 @@
|
||||
#undef _GLIBCXX_TEMPLATE_PARAMS
|
||||
#undef _GLIBCXX_COMMA
|
||||
#undef _GLIBCXX_NUM_ARGS
|
||||
|
||||
#undef _GLIBCXX_LAST_INCLUDE
|
||||
|
||||
|
@ -47,13 +47,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
|
||||
// when the tuple is not maximum possible size.
|
||||
struct _NullClass { };
|
||||
|
||||
template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
|
||||
typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
|
||||
typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
|
||||
typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
|
||||
typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
|
||||
class tuple;
|
||||
|
||||
/// Gives the type of the ith element of a given tuple type.
|
||||
template<int __i, typename _Tp>
|
||||
struct tuple_element;
|
||||
@ -86,38 +79,32 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
|
||||
|
||||
// Returns a const reference to the ith element of a tuple.
|
||||
// Any const or non-const ref elements are returned with their original type.
|
||||
template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
|
||||
typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
|
||||
typename _Tp8, typename _Tp9>
|
||||
typename __add_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
|
||||
_Tp3, _Tp4, _Tp5,
|
||||
_Tp6, _Tp7, _Tp8,
|
||||
_Tp9> >::type>::type
|
||||
get(tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
|
||||
_Tp9>& __t)
|
||||
{
|
||||
return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
|
||||
_Tp7, _Tp8, _Tp9> >::get_value(__t);
|
||||
}
|
||||
|
||||
template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
|
||||
typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
|
||||
typename _Tp8, typename _Tp9>
|
||||
typename __add_c_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
|
||||
_Tp3, _Tp4, _Tp5,
|
||||
_Tp6, _Tp7, _Tp8,
|
||||
_Tp9> >::type>::type
|
||||
get(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
|
||||
_Tp9>& __t)
|
||||
{
|
||||
return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
|
||||
_Tp7, _Tp8, _Tp9> >::get_value(__t);
|
||||
}
|
||||
|
||||
// This class helps construct the various comparison operations on tuples
|
||||
template<int __check_equal_size, int __i, int __j, typename _Tp, typename _Up>
|
||||
struct __tuple_compare;
|
||||
|
||||
// Helper which adds a reference to a type when given a reference_wrapper
|
||||
template<typename _Tp>
|
||||
struct __strip_reference_wrapper
|
||||
{
|
||||
typedef _Tp __type;
|
||||
};
|
||||
|
||||
template<typename _Tp>
|
||||
struct __strip_reference_wrapper<reference_wrapper<_Tp> >
|
||||
{
|
||||
typedef _Tp& __type;
|
||||
};
|
||||
|
||||
template<typename _Tp>
|
||||
struct __strip_reference_wrapper<const reference_wrapper<_Tp> >
|
||||
{
|
||||
typedef _Tp& __type;
|
||||
};
|
||||
|
||||
#include "tuple_defs.h"
|
||||
|
||||
template<int __i, int __j, typename _Tp, typename _Up>
|
||||
struct __tuple_compare<0, __i, __j, _Tp, _Up>
|
||||
{
|
||||
@ -142,108 +129,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
|
||||
{ return false; }
|
||||
};
|
||||
|
||||
template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
|
||||
typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
|
||||
typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
|
||||
typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
|
||||
bool
|
||||
operator==(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
|
||||
const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
|
||||
{
|
||||
typedef tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10> _Tp;
|
||||
typedef tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8,_U9, _U10> _Up;
|
||||
return __tuple_compare<tuple_size<_Tp>::value - tuple_size<_Tp>::value, 0,
|
||||
tuple_size<_Tp>::value, _Tp, _Up>::__eq(__t, __u);
|
||||
}
|
||||
|
||||
template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
|
||||
typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
|
||||
typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
|
||||
typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
|
||||
bool
|
||||
operator<(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
|
||||
const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
|
||||
{
|
||||
typedef tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10> _Tp;
|
||||
typedef tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8,_U9, _U10> _Up;
|
||||
return __tuple_compare<tuple_size<_Tp>::value - tuple_size<_Tp>::value, 0,
|
||||
tuple_size<_Tp>::value, _Tp, _Up>::__less(__t, __u);
|
||||
}
|
||||
|
||||
template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
|
||||
typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
|
||||
typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
|
||||
typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
|
||||
bool
|
||||
operator!=(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
|
||||
const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
|
||||
{ return !(__t == __u); }
|
||||
|
||||
template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
|
||||
typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
|
||||
typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
|
||||
typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
|
||||
bool
|
||||
operator>(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
|
||||
const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
|
||||
{ return __u < __t; }
|
||||
|
||||
template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
|
||||
typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
|
||||
typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
|
||||
typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
|
||||
bool
|
||||
operator<=(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
|
||||
const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
|
||||
{ return !(__u < __t); }
|
||||
|
||||
template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
|
||||
typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
|
||||
typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
|
||||
typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
|
||||
bool
|
||||
operator>=(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
|
||||
const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
|
||||
{ return !(__t < __u); }
|
||||
|
||||
// Helper which adds a reference to a type when given a reference_wrapper
|
||||
template<typename _Tp>
|
||||
struct __strip_reference_wrapper
|
||||
{
|
||||
typedef _Tp __type;
|
||||
};
|
||||
|
||||
template<typename _Tp>
|
||||
struct __strip_reference_wrapper<reference_wrapper<_Tp> >
|
||||
{
|
||||
typedef _Tp& __type;
|
||||
};
|
||||
|
||||
template<typename _Tp>
|
||||
struct __strip_reference_wrapper<const reference_wrapper<_Tp> >
|
||||
{
|
||||
typedef _Tp& __type;
|
||||
};
|
||||
|
||||
template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
|
||||
typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
|
||||
typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
|
||||
typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
|
||||
typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
|
||||
struct __stripped_tuple_type
|
||||
{
|
||||
typedef tuple<typename __strip_reference_wrapper<_Tp0>::__type,
|
||||
typename __strip_reference_wrapper<_Tp1>::__type,
|
||||
typename __strip_reference_wrapper<_Tp2>::__type,
|
||||
typename __strip_reference_wrapper<_Tp3>::__type,
|
||||
typename __strip_reference_wrapper<_Tp4>::__type,
|
||||
typename __strip_reference_wrapper<_Tp5>::__type,
|
||||
typename __strip_reference_wrapper<_Tp6>::__type,
|
||||
typename __strip_reference_wrapper<_Tp7>::__type,
|
||||
typename __strip_reference_wrapper<_Tp8>::__type,
|
||||
typename __strip_reference_wrapper<_Tp9>::__type> __type;
|
||||
};
|
||||
|
||||
// A class (and instance) which can be used in 'tie' when an element
|
||||
// of a tuple is not required
|
||||
struct swallow_assign
|
||||
|
108
libstdc++-v3/include/tr1/tuple_defs.h
Normal file
108
libstdc++-v3/include/tr1/tuple_defs.h
Normal file
@ -0,0 +1,108 @@
|
||||
// class template tuple -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
#ifndef _GLIBCXX_REPEAT_HEADER
|
||||
# define _GLIBCXX_REPEAT_HEADER "tuple_defs.h"
|
||||
# include "repeat.h"
|
||||
# undef _GLIBCXX_REPEAT_HEADER
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_LAST_INCLUDE
|
||||
// Chris Jefferson <chris@bubblescope.net>
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS> class tuple;
|
||||
|
||||
// Returns a const reference to the ith element of a tuple.
|
||||
// Any const or non-const ref elements are returned with their original type.
|
||||
template<int __i, _GLIBCXX_TEMPLATE_PARAMS>
|
||||
typename __add_ref<typename tuple_element<__i, tuple<_GLIBCXX_TEMPLATE_ARGS> >::type>::type
|
||||
get(tuple<_GLIBCXX_TEMPLATE_ARGS>& __t)
|
||||
{
|
||||
return __get_helper<__i, tuple<_GLIBCXX_TEMPLATE_ARGS> >::get_value(__t);
|
||||
}
|
||||
|
||||
template<int __i, _GLIBCXX_TEMPLATE_PARAMS>
|
||||
typename __add_c_ref<typename tuple_element<__i, tuple<_GLIBCXX_TEMPLATE_ARGS> >::type>::type
|
||||
get(const tuple<_GLIBCXX_TEMPLATE_ARGS>& __t)
|
||||
{
|
||||
return __get_helper<__i, tuple<_GLIBCXX_TEMPLATE_ARGS> >::get_value(__t);
|
||||
}
|
||||
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS, _GLIBCXX_TEMPLATE_PARAMS_U>
|
||||
bool
|
||||
operator==(const tuple<_GLIBCXX_TEMPLATE_ARGS>& __t,
|
||||
const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __u)
|
||||
{
|
||||
typedef tuple<_GLIBCXX_TEMPLATE_ARGS> _Tp;
|
||||
typedef tuple<_GLIBCXX_TEMPLATE_ARGS_U> _Up;
|
||||
return __tuple_compare<tuple_size<_Tp>::value - tuple_size<_Tp>::value, 0,
|
||||
tuple_size<_Tp>::value, _Tp, _Up>::__eq(__t, __u);
|
||||
}
|
||||
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS, _GLIBCXX_TEMPLATE_PARAMS_U>
|
||||
bool
|
||||
operator<(const tuple<_GLIBCXX_TEMPLATE_ARGS>& __t,
|
||||
const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __u)
|
||||
{
|
||||
typedef tuple<_GLIBCXX_TEMPLATE_ARGS> _Tp;
|
||||
typedef tuple<_GLIBCXX_TEMPLATE_ARGS_U> _Up;
|
||||
return __tuple_compare<tuple_size<_Tp>::value - tuple_size<_Tp>::value, 0,
|
||||
tuple_size<_Tp>::value, _Tp, _Up>::__less(__t, __u);
|
||||
}
|
||||
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS, _GLIBCXX_TEMPLATE_PARAMS_U>
|
||||
bool
|
||||
operator!=(const tuple<_GLIBCXX_TEMPLATE_ARGS>& __t,
|
||||
const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __u)
|
||||
{ return !(__t == __u); }
|
||||
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS, _GLIBCXX_TEMPLATE_PARAMS_U>
|
||||
bool
|
||||
operator>(const tuple<_GLIBCXX_TEMPLATE_ARGS>& __t,
|
||||
const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __u)
|
||||
{ return __u < __t; }
|
||||
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS, _GLIBCXX_TEMPLATE_PARAMS_U>
|
||||
bool
|
||||
operator<=(const tuple<_GLIBCXX_TEMPLATE_ARGS>& __t,
|
||||
const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __u)
|
||||
{ return !(__u < __t); }
|
||||
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS, _GLIBCXX_TEMPLATE_PARAMS_U>
|
||||
bool
|
||||
operator>=(const tuple<_GLIBCXX_TEMPLATE_ARGS>& __t,
|
||||
const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __u)
|
||||
{ return !(__t < __u); }
|
||||
|
||||
template<_GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS>
|
||||
struct __stripped_tuple_type
|
||||
{
|
||||
typedef tuple<_GLIBCXX_TEMPLATE_ARGS_STRIPPED> __type;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -108,8 +108,7 @@ template<_GLIBCXX_TEMPLATE_PARAMS>
|
||||
template<int __i, typename __Type>
|
||||
friend class __get_helper;
|
||||
|
||||
template<typename, typename, typename, typename, typename,
|
||||
typename, typename, typename, typename, typename>
|
||||
template<_GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED>
|
||||
friend class tuple;
|
||||
};
|
||||
|
||||
@ -130,12 +129,8 @@ template<typename _Tp>
|
||||
};
|
||||
|
||||
/// @brief class tuple_element
|
||||
template<typename _T1, typename _T2, typename _T3, typename _T4,
|
||||
typename _T5, typename _T6, typename _T7, typename _T8,
|
||||
typename _T9, typename _T10>
|
||||
struct tuple_element<_GLIBCXX_NUM_ARGS, tuple<_T1, _T2, _T3, _T4,
|
||||
_T5, _T6, _T7, _T8, _T9,
|
||||
_T10> >
|
||||
template<_GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS>
|
||||
struct tuple_element<_GLIBCXX_NUM_ARGS, tuple<_GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS> >
|
||||
{ typedef _GLIBCXX_T_NUM_ARGS_PLUS_1 type; };
|
||||
|
||||
#endif
|
||||
|
@ -42,6 +42,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
|
@ -44,6 +44,7 @@ subdir = libsupc++
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
|
@ -42,6 +42,7 @@ subdir = po
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
|
@ -4,6 +4,7 @@ use English;
|
||||
$max = shift @ARGV;
|
||||
|
||||
$template_params = "typename _T1";
|
||||
$template_params_unnamed = "typename";
|
||||
$template_args = "_T1";
|
||||
$params = "_T1 __a1";
|
||||
$ref_params = "_T1& __a1";
|
||||
@ -16,6 +17,8 @@ $bind_v_args = "_Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))";
|
||||
$tuple_add_cref = "typename __add_c_ref<_T1>::type __a1";
|
||||
$tuple_copy_init = "_M_arg1(__in._M_arg1)";
|
||||
$tuple_assign = "_M_arg1 = __in._M_arg1;";
|
||||
$template_params_null_class = "typename _T1 = _NullClass";
|
||||
$template_args_stripped = "typename __strip_reference_wrapper<_T1>::__type";
|
||||
$template_params_u = "typename _U1";
|
||||
$template_args_u = "_U1";
|
||||
$ref_wrap_params = "ref(__a1)";
|
||||
@ -28,6 +31,7 @@ for ($num_args = 2; $num_args <= $max; ++$num_args) {
|
||||
$params_shifted = $params;
|
||||
$args_shifted = $args;
|
||||
$template_params .= ", typename _T$num_args";
|
||||
$template_params_unnamed .= ", typename";
|
||||
$template_args .= ", _T$num_args";
|
||||
$params .= ", _T$num_args __a$num_args";
|
||||
$ref_params .=", _T$num_args& __a$num_args";
|
||||
@ -40,11 +44,16 @@ for ($num_args = 2; $num_args <= $max; ++$num_args) {
|
||||
$tuple_add_cref .= ", typename __add_c_ref<_T$num_args>::type __a$num_args";
|
||||
$tuple_copy_init .= ", _M_arg$num_args(__in._M_arg$num_args)";
|
||||
$tuple_assign .= " _M_arg$num_args = __in._M_arg$num_args;";
|
||||
$template_params_null_class .= ", typename _T$num_args = _NullClass";
|
||||
$template_args_stripped .= ", typename __strip_reference_wrapper<_T$num_args>::__type";
|
||||
$template_params_u .= ", typename _U$num_args";
|
||||
$template_args_u .= ", _U$num_args";
|
||||
$ref_wrap_params .= ", ref(__a$num_args)";
|
||||
$ref_template_args .= ", _T$num_args&";
|
||||
|
||||
if ($num_args == $max) {
|
||||
print "#define _GLIBCXX_LAST_INCLUDE\n"
|
||||
}
|
||||
print "#define _GLIBCXX_NUM_ARGS $num_args\n";
|
||||
print "#define _GLIBCXX_COMMA ,\n";
|
||||
print "#define _GLIBCXX_TEMPLATE_PARAMS $template_params\n";
|
||||
@ -65,25 +74,23 @@ for ($num_args = 2; $num_args <= $max; ++$num_args) {
|
||||
print "#define _GLIBCXX_TUPLE_ADD_CREF $tuple_add_cref\n";
|
||||
print "#define _GLIBCXX_TUPLE_COPY_INIT $tuple_copy_init\n";
|
||||
print "#define _GLIBCXX_TUPLE_ASSIGN $tuple_assign\n";
|
||||
print "#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS $template_params_null_class\n";
|
||||
print "#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED $template_args_stripped\n";
|
||||
print "#define _GLIBCXX_TEMPLATE_PARAMS_U $template_params_u\n";
|
||||
print "#define _GLIBCXX_TEMPLATE_ARGS_U $template_args_u\n";
|
||||
print "#define _GLIBCXX_REF_WRAP_PARAMS $ref_wrap_params\n";
|
||||
print "#define _GLIBCXX_REF_TEMPLATE_ARGS $ref_template_args\n";
|
||||
print "#define _GLIBCXX_NUM_ARGS_PLUS_1 $next_args\n";
|
||||
print "#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T$next_args\n";
|
||||
if ($num_args == $max) {
|
||||
print "#define _GLIBCXX_LAST_INCLUDE\n"
|
||||
}
|
||||
print "#include _GLIBCXX_REPEAT_HEADER\n";
|
||||
if ($num_args == $max) {
|
||||
print "#undef _GLIBCXX_LAST_INCLUDE\n"
|
||||
}
|
||||
print "#undef _GLIBCXX_T_NUM_ARGS_PLUS_1\n";
|
||||
print "#undef _GLIBCXX_NUM_ARGS_PLUS_1\n";
|
||||
print "#undef _GLIBCXX_REF_TEMPLATE_ARGS\n";
|
||||
print "#undef _GLIBCXX_REF_WRAP_PARAMS\n";
|
||||
print "#undef _GLIBCXX_TEMPLATE_ARGS_U\n";
|
||||
print "#undef _GLIBCXX_TEMPLATE_PARAMS_U\n";
|
||||
print "#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED\n";
|
||||
print "#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS\n";
|
||||
print "#undef _GLIBCXX_TUPLE_ASSIGN\n";
|
||||
print "#undef _GLIBCXX_TUPLE_COPY_INIT\n";
|
||||
print "#undef _GLIBCXX_TUPLE_ADD_CREF\n";
|
||||
@ -104,5 +111,16 @@ for ($num_args = 2; $num_args <= $max; ++$num_args) {
|
||||
print "#undef _GLIBCXX_TEMPLATE_PARAMS\n";
|
||||
print "#undef _GLIBCXX_COMMA\n";
|
||||
print "#undef _GLIBCXX_NUM_ARGS\n";
|
||||
print "\n";
|
||||
if ($num_args == $max) {
|
||||
print "#undef _GLIBCXX_LAST_INCLUDE\n"
|
||||
}
|
||||
}
|
||||
|
||||
print "\n";
|
||||
print "#ifndef _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS\n";
|
||||
print "# define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS $template_params\n";
|
||||
print "# define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED $template_params_unnamed\n";
|
||||
print "# define _GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS $template_args\n";
|
||||
print "#endif\n";
|
||||
print "\n";
|
||||
|
||||
|
31
libstdc++-v3/scripts/gen_includers2.pl
Normal file
31
libstdc++-v3/scripts/gen_includers2.pl
Normal file
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/perl -w
|
||||
use English;
|
||||
|
||||
$max = shift @ARGV;
|
||||
|
||||
$template_params = "typename _U1";
|
||||
$template_args = "_U1";
|
||||
$params = "_U1& __u1";
|
||||
$args = "__u1";
|
||||
|
||||
for ($num_args = 2; $num_args <= $max; ++$num_args) {
|
||||
$template_params .= ", typename _U$num_args";
|
||||
$template_args .= ", _U$num_args";
|
||||
$params .= ", _U$num_args& __u$num_args";
|
||||
$args .= ", __u$num_args";
|
||||
print "#define _GLIBCXX_BIND_NUM_ARGS $num_args\n";
|
||||
print "#define _GLIBCXX_BIND_COMMA ,\n";
|
||||
print "#define _GLIBCXX_BIND_TEMPLATE_PARAMS $template_params\n";
|
||||
print "#define _GLIBCXX_BIND_TEMPLATE_ARGS $template_args\n";
|
||||
print "#define _GLIBCXX_BIND_PARAMS $params\n";
|
||||
print "#define _GLIBCXX_BIND_ARGS $args\n";
|
||||
print "#include _GLIBCXX_BIND_REPEAT_HEADER\n";
|
||||
print "#undef _GLIBCXX_BIND_ARGS\n";
|
||||
print "#undef _GLIBCXX_BIND_PARAMS\n";
|
||||
print "#undef _GLIBCXX_BIND_TEMPLATE_ARGS\n";
|
||||
print "#undef _GLIBCXX_BIND_TEMPLATE_PARAMS\n";
|
||||
print "#undef _GLIBCXX_BIND_COMMA\n";
|
||||
print "#undef _GLIBCXX_BIND_NUM_ARGS\n";
|
||||
print "\n";
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ subdir = src
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
|
@ -42,6 +42,7 @@ subdir = testsuite
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
|
||||
$(top_srcdir)/../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../config/multi.m4 \
|
||||
$(top_srcdir)/../config/no-executables.m4 \
|
||||
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
||||
$(top_srcdir)/../libtool.m4 $(top_srcdir)/crossconfig.m4 \
|
||||
|
Loading…
Reference in New Issue
Block a user