Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

deque_macros.h

00001 /*
00002  * Copyright 2003 Michael A. Marsh, Cornell University. All rights reserved.
00003  * This software is released under the modified BSD license.
00004  * See the file LICENSE in the top-level directory for details.
00005  */
00006 //
00007 // $Id: deque_macros.h,v 1.5 2005/01/18 17:20:30 mmarsh Exp $
00008 //
00009 // $Log: deque_macros.h,v $
00010 // Revision 1.5  2005/01/18 17:20:30  mmarsh
00011 // More g++ fixes for deque.  This time it's for a slightly earlier
00012 // version than the previous fix.
00013 //
00014 // Revision 1.4  2005/01/15 03:41:37  mmarsh
00015 // Updated to work with more recent versions of g++.
00016 //
00017 // Revision 1.3  2004/05/19 15:56:45  mmarsh
00018 // *** empty log message ***
00019 //
00020 // Revision 1.2  2003/11/04 22:31:46  mmarsh
00021 // *** empty log message ***
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 /* DEQUE_HAVE_M_RANGE_INSERT_AUX */
00046 
00047 #  define RIA_I( __A )
00048 #  define RIA_cI( __A )
00049 
00050 #endif /* DEQUE_HAVE_M_RANGE_INSERT_AUX */
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 /* DEQUE_HAVE_INSERT_FWDITR */
00066 
00067 #  define IFA_I( __A )
00068 #  define IFA_cI( __A )
00069 
00070 #endif /* DEQUE_HAVE_INSERT_FWDITR */
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 /* __CODEX_BASICS_DEQUE_MACROS_H__ */

Generated on Fri May 6 17:39:11 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1