make_named_values.hh

Go to the documentation of this file.
00001 /* vim: set sw=4 sts=4 et foldmethod=syntax : */
00002 
00003 /*
00004  * Copyright (c) 2008, 2009 Ciaran McCreesh
00005  *
00006  * This file is part of the Paludis package manager. Paludis is free software;
00007  * you can redistribute it and/or modify it under the terms of the GNU General
00008  * Public License version 2, as published by the Free Software Foundation.
00009  *
00010  * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
00011  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00012  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
00013  * details.
00014  *
00015  * You should have received a copy of the GNU General Public License along with
00016  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00017  * Place, Suite 330, Boston, MA  02111-1307  USA
00018  */
00019 
00020 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_MAKE_NAMED_VALUES_HH
00021 #define PALUDIS_GUARD_PALUDIS_UTIL_MAKE_NAMED_VALUES_HH 1
00022 
00023 /** \file
00024  * A load of make_named_values functions.
00025  *
00026  * Bizarre oddity in C++98: you can only use an initialiser list when using
00027  * equals to initialise a newly constructed object. C++0x fixes this, but in the
00028  * mean time we can hack around it with this mess...
00029  */
00030 
00031 namespace paludis
00032 {
00033 #ifdef PALUDIS_HAVE_VARIADIC_TEMPLATES
00034 
00035 #  ifdef PALUDIS_HAVE_RVALUE_REFERENCES
00036 
00037     template <typename R_, typename... T_>
00038     R_ make_named_values(T_ && ... a)
00039     {
00040         R_ result = { a... };
00041         return result;
00042     }
00043 
00044 #  else
00045 
00046     template <typename R_, typename... T_>
00047     R_ make_named_values(const T_ & ... a)
00048     {
00049         R_ result = { a... };
00050         return result;
00051     }
00052 
00053 #  endif
00054 
00055 #else
00056 
00057     template <typename R_, typename T1_>
00058     R_ make_named_values(const T1_ & v1)
00059     {
00060         R_ result = { v1 };
00061         return result;
00062     }
00063 
00064     template <typename R_, typename T1_, typename T2_>
00065     R_ make_named_values(const T1_ & v1, const T2_ & v2)
00066     {
00067         R_ result = { v1, v2 };
00068         return result;
00069     }
00070 
00071     template <typename R_, typename T1_, typename T2_, typename T3_>
00072     R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3)
00073     {
00074         R_ result = { v1, v2, v3 };
00075         return result;
00076     }
00077 
00078     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_>
00079     R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4)
00080     {
00081         R_ result = { v1, v2, v3, v4 };
00082         return result;
00083     }
00084 
00085     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_>
00086     R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5)
00087     {
00088         R_ result = { v1, v2, v3, v4, v5 };
00089         return result;
00090     }
00091 
00092     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00093              typename T6_>
00094     R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00095             const T6_ & v6)
00096     {
00097         R_ result = { v1, v2, v3, v4, v5, v6 };
00098         return result;
00099     }
00100 
00101     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00102              typename T6_, typename T7_>
00103     R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00104             const T6_ & v6, const T7_ & v7)
00105     {
00106         R_ result = { v1, v2, v3, v4, v5, v6, v7 };
00107         return result;
00108     }
00109 
00110     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00111              typename T6_, typename T7_, typename T8_>
00112     R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00113             const T6_ & v6, const T7_ & v7, const T8_ & v8)
00114     {
00115         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8 };
00116         return result;
00117     }
00118 
00119     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00120              typename T6_, typename T7_, typename T8_, typename T9_>
00121      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00122             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9)
00123     {
00124         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9 };
00125         return result;
00126     }
00127 
00128     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00129              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_>
00130      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00131             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10)
00132     {
00133         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 };
00134         return result;
00135     }
00136 
00137     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00138              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00139              typename T11_>
00140      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00141             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00142             const T11_ & v11)
00143     {
00144         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11 };
00145         return result;
00146     }
00147 
00148     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00149              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00150              typename T11_, typename T12_>
00151      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00152             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00153             const T11_ & v11, const T12_ & v12)
00154     {
00155         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 };
00156         return result;
00157     }
00158 
00159     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00160              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00161              typename T11_, typename T12_, typename T13_>
00162      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00163             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00164             const T11_ & v11, const T12_ & v12, const T13_ & v13)
00165     {
00166         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 };
00167         return result;
00168     }
00169 
00170     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00171              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00172              typename T11_, typename T12_, typename T13_, typename T14_>
00173      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00174             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00175             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14)
00176     {
00177         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14 };
00178         return result;
00179     }
00180 
00181     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00182              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00183              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_>
00184      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00185             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00186             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15)
00187     {
00188         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 };
00189         return result;
00190     }
00191 
00192     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00193              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00194              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00195              typename T16_>
00196      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00197             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00198             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00199             const T16_ & v16)
00200     {
00201         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16 };
00202         return result;
00203     }
00204 
00205     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00206              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00207              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00208              typename T16_, typename T17_>
00209      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00210             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00211             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00212             const T16_ & v16, const T17_ & v17)
00213     {
00214         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17 };
00215         return result;
00216     }
00217 
00218     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00219              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00220              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00221              typename T16_, typename T17_, typename T18_>
00222      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00223             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00224             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00225             const T16_ & v16, const T17_ & v17, const T18_ & v18)
00226     {
00227         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18 };
00228         return result;
00229     }
00230 
00231     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00232              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00233              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00234              typename T16_, typename T17_, typename T18_, typename T19_>
00235      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00236             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00237             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00238             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19)
00239     {
00240         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19 };
00241         return result;
00242     }
00243 
00244     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00245              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00246              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00247              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_>
00248      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00249             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00250             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00251             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20)
00252     {
00253         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20 };
00254         return result;
00255     }
00256 
00257     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00258              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00259              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00260              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00261              typename T21_>
00262      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00263             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00264             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00265             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00266             const T21_ & v21)
00267     {
00268         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00269             v21 };
00270         return result;
00271     }
00272 
00273     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00274              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00275              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00276              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00277              typename T21_, typename T22_>
00278      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00279             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00280             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00281             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00282             const T21_ & v21, const T22_ & v22)
00283     {
00284         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00285             v21, v22 };
00286         return result;
00287     }
00288 
00289     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00290              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00291              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00292              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00293              typename T21_, typename T22_, typename T23_>
00294      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00295             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00296             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00297             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00298             const T21_ & v21, const T22_ & v22, const T23_ & v23)
00299     {
00300         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00301             v21, v22, v23 };
00302         return result;
00303     }
00304 
00305     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00306              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00307              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00308              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00309              typename T21_, typename T22_, typename T23_, typename T24_>
00310      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00311             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00312             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00313             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00314             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24)
00315     {
00316         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00317             v21, v22, v23, v24 };
00318         return result;
00319     }
00320 
00321     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00322              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00323              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00324              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00325              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_>
00326      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00327             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00328             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00329             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00330             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25)
00331     {
00332         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00333             v21, v22, v23, v24, v25 };
00334         return result;
00335     }
00336 
00337     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00338              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00339              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00340              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00341              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00342              typename T26_>
00343      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00344             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00345             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00346             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00347             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00348             const T26_ & v26)
00349     {
00350         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00351             v21, v22, v23, v24, v25, v26 };
00352         return result;
00353     }
00354 
00355     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00356              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00357              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00358              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00359              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00360              typename T26_, typename T27_>
00361      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00362             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00363             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00364             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00365             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00366             const T26_ & v26, const T27_ & v27)
00367     {
00368         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00369             v21, v22, v23, v24, v25, v26, v27 };
00370         return result;
00371     }
00372 
00373     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00374              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00375              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00376              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00377              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00378              typename T26_, typename T27_, typename T28_>
00379      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00380             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00381             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00382             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00383             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00384             const T26_ & v26, const T27_ & v27, const T28_ & v28)
00385     {
00386         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00387             v21, v22, v23, v24, v25, v26, v27, v28 };
00388         return result;
00389     }
00390 
00391     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00392              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00393              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00394              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00395              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00396              typename T26_, typename T27_, typename T28_, typename T29_>
00397      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00398             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00399             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00400             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00401             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00402             const T26_ & v26, const T27_ & v27, const T28_ & v28, const T29_ & v29)
00403     {
00404         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00405             v21, v22, v23, v24, v25, v26, v27, v28, v29 };
00406         return result;
00407     }
00408 
00409     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00410              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00411              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00412              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00413              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00414              typename T26_, typename T27_, typename T28_, typename T29_, typename T30_>
00415      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00416             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00417             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00418             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00419             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00420             const T26_ & v26, const T27_ & v27, const T28_ & v28, const T29_ & v29, const T30_ & v30)
00421     {
00422         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00423             v21, v22, v23, v24, v25, v26, v27, v28, v29, v30 };
00424         return result;
00425     }
00426 
00427     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00428              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00429              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00430              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00431              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00432              typename T26_, typename T27_, typename T28_, typename T29_, typename T30_,
00433              typename T31_>
00434      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00435             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00436             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00437             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00438             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00439             const T26_ & v26, const T27_ & v27, const T28_ & v28, const T29_ & v29, const T30_ & v30,
00440             const T31_ & v31)
00441     {
00442         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00443             v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31 };
00444         return result;
00445     }
00446 
00447     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00448              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00449              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00450              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00451              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00452              typename T26_, typename T27_, typename T28_, typename T29_, typename T30_,
00453              typename T31_, typename T32_>
00454      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00455             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00456             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00457             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00458             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00459             const T26_ & v26, const T27_ & v27, const T28_ & v28, const T29_ & v29, const T30_ & v30,
00460             const T31_ & v31, const T32_ & v32)
00461     {
00462         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00463             v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32 };
00464         return result;
00465     }
00466 
00467     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00468              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00469              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00470              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00471              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00472              typename T26_, typename T27_, typename T28_, typename T29_, typename T30_,
00473              typename T31_, typename T32_, typename T33_>
00474      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00475             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00476             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00477             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00478             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00479             const T26_ & v26, const T27_ & v27, const T28_ & v28, const T29_ & v29, const T30_ & v30,
00480             const T31_ & v31, const T32_ & v32, const T33_ & v33)
00481     {
00482         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00483             v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33 };
00484         return result;
00485     }
00486 
00487     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00488              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00489              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00490              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00491              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00492              typename T26_, typename T27_, typename T28_, typename T29_, typename T30_,
00493              typename T31_, typename T32_, typename T33_, typename T34_>
00494      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00495             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00496             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00497             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00498             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00499             const T26_ & v26, const T27_ & v27, const T28_ & v28, const T29_ & v29, const T30_ & v30,
00500             const T31_ & v31, const T32_ & v32, const T33_ & v33, const T34_ & v34)
00501     {
00502         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00503             v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34 };
00504         return result;
00505     }
00506 
00507     template <typename R_, typename T1_, typename T2_, typename T3_, typename T4_, typename T5_,
00508              typename T6_, typename T7_, typename T8_, typename T9_, typename T10_,
00509              typename T11_, typename T12_, typename T13_, typename T14_, typename T15_,
00510              typename T16_, typename T17_, typename T18_, typename T19_, typename T20_,
00511              typename T21_, typename T22_, typename T23_, typename T24_, typename T25_,
00512              typename T26_, typename T27_, typename T28_, typename T29_, typename T30_,
00513              typename T31_, typename T32_, typename T33_, typename T34_, typename T35_>
00514      R_ make_named_values(const T1_ & v1, const T2_ & v2, const T3_ & v3, const T4_ & v4, const T5_ & v5,
00515             const T6_ & v6, const T7_ & v7, const T8_ & v8, const T9_ & v9, const T10_ & v10,
00516             const T11_ & v11, const T12_ & v12, const T13_ & v13, const T14_ & v14, const T15_ & v15,
00517             const T16_ & v16, const T17_ & v17, const T18_ & v18, const T19_ & v19, const T20_ & v20,
00518             const T21_ & v21, const T22_ & v22, const T23_ & v23, const T24_ & v24, const T25_ & v25,
00519             const T26_ & v26, const T27_ & v27, const T28_ & v28, const T29_ & v29, const T30_ & v30,
00520             const T31_ & v31, const T32_ & v32, const T33_ & v33, const T34_ & v34, const T35_ & v35)
00521     {
00522         R_ result = { v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20,
00523             v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35 };
00524         return result;
00525     }
00526 
00527 #endif
00528 }
00529 
00530 #endif

Generated on Mon Sep 21 10:36:08 2009 for paludis by  doxygen 1.5.4