00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __CODEX_BASICS_DEQUE_MACROS_H__
00026 #define __CODEX_BASICS_DEQUE_MACROS_H__
00027
00028 #include <deque>
00029 #include "config.h"
00030
00031 #ifdef DEQUE_HAVE_M_RANGE_INSERT_AUX
00032
00033 # define RIA_I( __A ) template void __A::_M_range_insert_aux( \
00034 __A::iterator, \
00035 __A::iterator, \
00036 __A::iterator, \
00037 forward_iterator_tag );
00038
00039 # define RIA_cI( __A ) template void __A::_M_range_insert_aux( \
00040 __A::iterator, \
00041 __A::const_iterator, \
00042 __A::const_iterator, \
00043 forward_iterator_tag );
00044
00045 #else
00046
00047 # define RIA_I( __A )
00048 # define RIA_cI( __A )
00049
00050 #endif
00051
00052
00053 #ifdef DEQUE_HAVE_INSERT_FWDITR
00054
00055 # define IFA_I( __A ) template void __A::insert( __A::iterator, \
00056 __A::iterator, \
00057 __A::iterator, \
00058 forward_iterator_tag );
00059
00060 # define IFA_cI( __A ) template void __A::insert( __A::iterator, \
00061 __A::const_iterator, \
00062 __A::const_iterator, \
00063 forward_iterator_tag );
00064
00065 #else
00066
00067 # define IFA_I( __A )
00068 # define IFA_cI( __A )
00069
00070 #endif
00071
00072
00073 #define INSTANTIATE_DEQUE( __T ) \
00074 template __T::_Base; \
00075 template __T; \
00076 template void __T::insert( __T::iterator, \
00077 __T::iterator, \
00078 __T::iterator ); \
00079 template void __T::insert( __T::iterator, \
00080 __T::const_iterator, \
00081 __T::const_iterator ); \
00082 IFA_I( __T ) \
00083 IFA_cI( __T ) \
00084 template void __T::_M_insert_aux( __T::iterator, \
00085 __T::iterator, \
00086 __T::iterator, \
00087 size_t ); \
00088 template void __T::_M_insert_aux( __T::iterator, \
00089 __T::const_iterator, \
00090 __T::const_iterator, \
00091 size_t ); \
00092 RIA_I( __T ) \
00093 RIA_cI( __T ) \
00094 template void std::fill< __T::iterator, __T::value_type >( \
00095 __T::iterator, \
00096 __T::iterator, \
00097 __T::value_type const& ); \
00098 template void std::fill< __T::pointer, __T::value_type >( \
00099 __T::pointer, \
00100 __T::pointer, \
00101 __T::value_type const& );
00102
00103 #endif