library of assembled shared sources

http://lass.cocamware.com

is_member.h

Go to the documentation of this file.
00001 /*
00002  * *** ATTENTION!  DO NOT MODIFY THIS FILE DIRECTLY! ***
00003  * 
00004  * It has automatically been generated from is_member.tmpl.h
00005  * by param_expander.py on Sun Nov 09 16:55:51 2008.
00006  */
00007 
00008 /** @file
00009  *  @author Bram de Greve (bramz@users.sourceforge.net)
00010  *  @author Tom De Muer (tomdemuer@users.sourceforge.net)
00011  *
00012  *  *** BEGIN LICENSE INFORMATION ***
00013  *  
00014  *  The contents of this file are subject to the Common Public Attribution License 
00015  *  Version 1.0 (the "License"); you may not use this file except in compliance with 
00016  *  the License. You may obtain a copy of the License at 
00017  *  http://lass.sourceforge.net/cpal-license. The License is based on the 
00018  *  Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover 
00019  *  use of software over a computer network and provide for limited attribution for 
00020  *  the Original Developer. In addition, Exhibit A has been modified to be consistent 
00021  *  with Exhibit B.
00022  *  
00023  *  Software distributed under the License is distributed on an "AS IS" basis, WITHOUT 
00024  *  WARRANTY OF ANY KIND, either express or implied. See the License for the specific 
00025  *  language governing rights and limitations under the License.
00026  *  
00027  *  The Original Code is LASS - Library of Assembled Shared Sources.
00028  *  
00029  *  The Initial Developer of the Original Code is Bram de Greve and Tom De Muer.
00030  *  The Original Developer is the Initial Developer.
00031  *  
00032  *  All portions of the code written by the Initial Developer are:
00033  *  Copyright (C) 2004-2007 the Initial Developer.
00034  *  All Rights Reserved.
00035  *  
00036  *  Contributor(s):
00037  *
00038  *  Alternatively, the contents of this file may be used under the terms of the 
00039  *  GNU General Public License Version 2 or later (the GPL), in which case the 
00040  *  provisions of GPL are applicable instead of those above.  If you wish to allow use
00041  *  of your version of this file only under the terms of the GPL and not to allow 
00042  *  others to use your version of this file under the CPAL, indicate your decision by 
00043  *  deleting the provisions above and replace them with the notice and other 
00044  *  provisions required by the GPL License. If you do not delete the provisions above,
00045  *  a recipient may use your version of this file under either the CPAL or the GPL.
00046  *  
00047  *  *** END LICENSE INFORMATION ***
00048  */
00049 
00050 #ifndef LASS_GUARDIAN_OF_INCLUSION_META_IS_MEMBER_H
00051 #define LASS_GUARDIAN_OF_INCLUSION_META_IS_MEMBER_H
00052 
00053 #include "meta_common.h"
00054 #include "bool.h"
00055 #include "is_const.h"
00056 
00057 namespace lass
00058 {
00059 namespace meta
00060 {
00061 
00062 // following _templates_ work on types
00063 
00064 template <typename R> struct IsMember : meta::False {};
00065 template <typename R> struct IsConstMember : meta::False {};
00066 
00067 template <typename R, typename C > struct IsMember<R (C::*) ()> : meta::True {};
00068 template <typename R, typename C > struct IsMember<R (C::*) () const > : meta::True {};
00069 template <typename R, typename C > struct IsConstMember<R (C::*) () const > : meta::True {};
00070 
00071 
00072 template <typename R, typename C, typename P1 > struct IsMember<R (C::*) ( P1 )> : meta::True {};
00073 template <typename R, typename C, typename P1 > struct IsMember<R (C::*) ( P1 ) const > : meta::True {};
00074 template <typename R, typename C, typename P1 > struct IsConstMember<R (C::*) ( P1 ) const > : meta::True {};
00075 
00076 template <typename R, typename C, typename P1, typename P2 > struct IsMember<R (C::*) ( P1, P2 )> : meta::True {};
00077 template <typename R, typename C, typename P1, typename P2 > struct IsMember<R (C::*) ( P1, P2 ) const > : meta::True {};
00078 template <typename R, typename C, typename P1, typename P2 > struct IsConstMember<R (C::*) ( P1, P2 ) const > : meta::True {};
00079 
00080 template <typename R, typename C, typename P1, typename P2, typename P3 > struct IsMember<R (C::*) ( P1, P2, P3 )> : meta::True {};
00081 template <typename R, typename C, typename P1, typename P2, typename P3 > struct IsMember<R (C::*) ( P1, P2, P3 ) const > : meta::True {};
00082 template <typename R, typename C, typename P1, typename P2, typename P3 > struct IsConstMember<R (C::*) ( P1, P2, P3 ) const > : meta::True {};
00083 
00084 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > struct IsMember<R (C::*) ( P1, P2, P3, P4 )> : meta::True {};
00085 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > struct IsMember<R (C::*) ( P1, P2, P3, P4 ) const > : meta::True {};
00086 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4 ) const > : meta::True {};
00087 
00088 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5 )> : meta::True {};
00089 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5 ) const > : meta::True {};
00090 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5 ) const > : meta::True {};
00091 
00092 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6 )> : meta::True {};
00093 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6 ) const > : meta::True {};
00094 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6 ) const > : meta::True {};
00095 
00096 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7 )> : meta::True {};
00097 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7 ) const > : meta::True {};
00098 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7 ) const > : meta::True {};
00099 
00100 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8 )> : meta::True {};
00101 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8 ) const > : meta::True {};
00102 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8 ) const > : meta::True {};
00103 
00104 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9 )> : meta::True {};
00105 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const > : meta::True {};
00106 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const > : meta::True {};
00107 
00108 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 )> : meta::True {};
00109 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const > : meta::True {};
00110 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const > : meta::True {};
00111 
00112 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 )> : meta::True {};
00113 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const > : meta::True {};
00114 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const > : meta::True {};
00115 
00116 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 )> : meta::True {};
00117 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const > : meta::True {};
00118 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const > : meta::True {};
00119 
00120 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 )> : meta::True {};
00121 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const > : meta::True {};
00122 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const > : meta::True {};
00123 
00124 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 )> : meta::True {};
00125 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const > : meta::True {};
00126 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const > : meta::True {};
00127 
00128 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 )> : meta::True {};
00129 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > struct IsMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const > : meta::True {};
00130 template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > struct IsConstMember<R (C::*) ( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const > : meta::True {};
00131 
00132 
00133 // following _functions_ work on instances
00134 
00135 template <typename R, typename C > inline bool isMember(R (C::*)() ) { return true; }
00136 template <typename R, typename C > inline bool isMember(R (C::*)() const ) { return true; }
00137 template <typename R, typename C > inline bool isConstMember(R (C::*)()  ) { return false; }
00138 template <typename R, typename C > inline bool isConstMember(R (C::*)() const ) { return true; }
00139 // pseudo const members are either const members or free function with as first argument a
00140 // const argument
00141 
00142 template <typename R, typename C > inline bool isPseudoConstMember(R (C::*)()  ) { return false; }
00143 template <typename R, typename C > inline bool isPseudoConstMember(R (C::*)() const ) { return true; }
00144 template <typename R, typename C > inline bool isPseudoConstMember(R (*)(C) ) { return IsConst<C>::value; }
00145 
00146 
00147 
00148     template <typename R, typename C, typename P1 > inline bool isMember(R (C::*)( P1 ) ) { return true; }
00149     template <typename R, typename C, typename P1 > inline bool isMember(R (C::*)( P1 ) const ) { return true; }
00150     template <typename R, typename C, typename P1 > inline bool isConstMember(R (C::*)( P1 ) ) { return false; }
00151     template <typename R, typename C, typename P1 > inline bool isConstMember(R (C::*)( P1 ) const ) { return true; }
00152     template <typename R, typename C, typename P1 > inline bool isPseudoConstMember(R (C::*)( P1 ) ) { return false; }
00153     template <typename R, typename C, typename P1 > inline bool isPseudoConstMember(R (C::*)( P1 ) const ) { return true; }
00154     template <typename R, typename C, typename P1 > inline bool isPseudoConstMember(R (*)( C, P1 ) ) { return IsConst<C>::value; }
00155 
00156     template <typename R, typename C, typename P1, typename P2 > inline bool isMember(R (C::*)( P1, P2 ) ) { return true; }
00157     template <typename R, typename C, typename P1, typename P2 > inline bool isMember(R (C::*)( P1, P2 ) const ) { return true; }
00158     template <typename R, typename C, typename P1, typename P2 > inline bool isConstMember(R (C::*)( P1, P2 ) ) { return false; }
00159     template <typename R, typename C, typename P1, typename P2 > inline bool isConstMember(R (C::*)( P1, P2 ) const ) { return true; }
00160     template <typename R, typename C, typename P1, typename P2 > inline bool isPseudoConstMember(R (C::*)( P1, P2 ) ) { return false; }
00161     template <typename R, typename C, typename P1, typename P2 > inline bool isPseudoConstMember(R (C::*)( P1, P2 ) const ) { return true; }
00162     template <typename R, typename C, typename P1, typename P2 > inline bool isPseudoConstMember(R (*)( C, P1, P2 ) ) { return IsConst<C>::value; }
00163 
00164     template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isMember(R (C::*)( P1, P2, P3 ) ) { return true; }
00165     template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isMember(R (C::*)( P1, P2, P3 ) const ) { return true; }
00166     template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isConstMember(R (C::*)( P1, P2, P3 ) ) { return false; }
00167     template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isConstMember(R (C::*)( P1, P2, P3 ) const ) { return true; }
00168     template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3 ) ) { return false; }
00169     template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3 ) const ) { return true; }
00170     template <typename R, typename C, typename P1, typename P2, typename P3 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3 ) ) { return IsConst<C>::value; }
00171 
00172     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isMember(R (C::*)( P1, P2, P3, P4 ) ) { return true; }
00173     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isMember(R (C::*)( P1, P2, P3, P4 ) const ) { return true; }
00174     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4 ) ) { return false; }
00175     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4 ) const ) { return true; }
00176     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4 ) ) { return false; }
00177     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4 ) const ) { return true; }
00178     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4 ) ) { return IsConst<C>::value; }
00179 
00180     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5 ) ) { return true; }
00181     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5 ) const ) { return true; }
00182     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5 ) ) { return false; }
00183     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5 ) const ) { return true; }
00184     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5 ) ) { return false; }
00185     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5 ) const ) { return true; }
00186     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5 ) ) { return IsConst<C>::value; }
00187 
00188     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) ) { return true; }
00189     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) const ) { return true; }
00190     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) ) { return false; }
00191     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) const ) { return true; }
00192     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) ) { return false; }
00193     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6 ) const ) { return true; }
00194     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6 ) ) { return IsConst<C>::value; }
00195 
00196     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) ) { return true; }
00197     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) const ) { return true; }
00198     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) ) { return false; }
00199     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) const ) { return true; }
00200     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) ) { return false; }
00201     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7 ) const ) { return true; }
00202     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7 ) ) { return IsConst<C>::value; }
00203 
00204     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return true; }
00205     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) const ) { return true; }
00206     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return false; }
00207     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) const ) { return true; }
00208     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return false; }
00209     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8 ) const ) { return true; }
00210     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8 ) ) { return IsConst<C>::value; }
00211 
00212     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return true; }
00213     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const ) { return true; }
00214     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return false; }
00215     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const ) { return true; }
00216     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return false; }
00217     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9 ) const ) { return true; }
00218     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9 ) ) { return IsConst<C>::value; }
00219 
00220     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return true; }
00221     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const ) { return true; }
00222     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return false; }
00223     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const ) { return true; }
00224     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return false; }
00225     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) const ) { return true; }
00226     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 ) ) { return IsConst<C>::value; }
00227 
00228     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return true; }
00229     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const ) { return true; }
00230     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return false; }
00231     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const ) { return true; }
00232     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return false; }
00233     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) const ) { return true; }
00234     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 ) ) { return IsConst<C>::value; }
00235 
00236     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return true; }
00237     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const ) { return true; }
00238     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return false; }
00239     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const ) { return true; }
00240     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return false; }
00241     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) const ) { return true; }
00242     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 ) ) { return IsConst<C>::value; }
00243 
00244     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return true; }
00245     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const ) { return true; }
00246     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return false; }
00247     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const ) { return true; }
00248     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return false; }
00249     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) const ) { return true; }
00250     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 ) ) { return IsConst<C>::value; }
00251 
00252     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return true; }
00253     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const ) { return true; }
00254     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return false; }
00255     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const ) { return true; }
00256     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return false; }
00257     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) const ) { return true; }
00258     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 ) ) { return IsConst<C>::value; }
00259 
00260     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return true; }
00261     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const ) { return true; }
00262     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return false; }
00263     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const ) { return true; }
00264     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return false; }
00265     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isPseudoConstMember(R (C::*)( P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) const ) { return true; }
00266     template <typename R, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15 > inline bool isPseudoConstMember(R (*)( C, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 ) ) { return IsConst<C>::value; }
00267 
00268 
00269 
00270 }
00271 }
00272 
00273 #endif
00274 
00275 // EOF

Generated on Mon Nov 10 14:20:05 2008 for Library of Assembled Shared Sources by doxygen 1.5.7.1
SourceForge.net Logo