Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:20

0001     ///////////////////////////////////////////////////////////////////////////////
0002     // class_member_traits.hpp
0003     // Contains specializations of the class_member_traits\<\> class template.
0004     //
0005     //  Copyright 2008 Eric Niebler. Distributed under the Boost
0006     //  Software License, Version 1.0. (See accompanying file
0007     //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008     template<typename T, typename U >
0009     struct class_member_traits<T (U::*)()>
0010     {
0011         typedef U class_type;
0012         typedef T result_type;
0013     };
0014     template<typename T, typename U >
0015     struct class_member_traits<T (U::*)() const>
0016     {
0017         typedef U class_type;
0018         typedef T result_type;
0019     };
0020     template<typename T, typename U , typename A0>
0021     struct class_member_traits<T (U::*)(A0)>
0022     {
0023         typedef U class_type;
0024         typedef T result_type;
0025     };
0026     template<typename T, typename U , typename A0>
0027     struct class_member_traits<T (U::*)(A0) const>
0028     {
0029         typedef U class_type;
0030         typedef T result_type;
0031     };
0032     template<typename T, typename U , typename A0 , typename A1>
0033     struct class_member_traits<T (U::*)(A0 , A1)>
0034     {
0035         typedef U class_type;
0036         typedef T result_type;
0037     };
0038     template<typename T, typename U , typename A0 , typename A1>
0039     struct class_member_traits<T (U::*)(A0 , A1) const>
0040     {
0041         typedef U class_type;
0042         typedef T result_type;
0043     };
0044     template<typename T, typename U , typename A0 , typename A1 , typename A2>
0045     struct class_member_traits<T (U::*)(A0 , A1 , A2)>
0046     {
0047         typedef U class_type;
0048         typedef T result_type;
0049     };
0050     template<typename T, typename U , typename A0 , typename A1 , typename A2>
0051     struct class_member_traits<T (U::*)(A0 , A1 , A2) const>
0052     {
0053         typedef U class_type;
0054         typedef T result_type;
0055     };
0056     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3>
0057     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3)>
0058     {
0059         typedef U class_type;
0060         typedef T result_type;
0061     };
0062     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3>
0063     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3) const>
0064     {
0065         typedef U class_type;
0066         typedef T result_type;
0067     };
0068     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
0069     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4)>
0070     {
0071         typedef U class_type;
0072         typedef T result_type;
0073     };
0074     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
0075     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4) const>
0076     {
0077         typedef U class_type;
0078         typedef T result_type;
0079     };
0080     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
0081     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5)>
0082     {
0083         typedef U class_type;
0084         typedef T result_type;
0085     };
0086     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
0087     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5) const>
0088     {
0089         typedef U class_type;
0090         typedef T result_type;
0091     };
0092     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
0093     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
0094     {
0095         typedef U class_type;
0096         typedef T result_type;
0097     };
0098     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
0099     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6) const>
0100     {
0101         typedef U class_type;
0102         typedef T result_type;
0103     };
0104     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
0105     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
0106     {
0107         typedef U class_type;
0108         typedef T result_type;
0109     };
0110     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
0111     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7) const>
0112     {
0113         typedef U class_type;
0114         typedef T result_type;
0115     };
0116     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
0117     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
0118     {
0119         typedef U class_type;
0120         typedef T result_type;
0121     };
0122     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
0123     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8) const>
0124     {
0125         typedef U class_type;
0126         typedef T result_type;
0127     };
0128     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
0129     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
0130     {
0131         typedef U class_type;
0132         typedef T result_type;
0133     };
0134     template<typename T, typename U , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
0135     struct class_member_traits<T (U::*)(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9) const>
0136     {
0137         typedef U class_type;
0138         typedef T result_type;
0139     };