|
Sacado Package Browser (Single Doxygen Collection) Version of the Day
|
00001 // $Id$ 00002 // $Source$ 00003 // @HEADER 00004 // *********************************************************************** 00005 // 00006 // Sacado Package 00007 // Copyright (2006) Sandia Corporation 00008 // 00009 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00010 // the U.S. Government retains certain rights in this software. 00011 // 00012 // This library is free software; you can redistribute it and/or modify 00013 // it under the terms of the GNU Lesser General Public License as 00014 // published by the Free Software Foundation; either version 2.1 of the 00015 // License, or (at your option) any later version. 00016 // 00017 // This library is distributed in the hope that it will be useful, but 00018 // WITHOUT ANY WARRANTY; without even the implied warranty of 00019 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00020 // Lesser General Public License for more details. 00021 // 00022 // You should have received a copy of the GNU Lesser General Public 00023 // License along with this library; if not, write to the Free Software 00024 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00025 // USA 00026 // Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps 00027 // (etphipp@sandia.gov). 00028 // 00029 // *********************************************************************** 00030 // @HEADER 00031 00032 #ifndef SCADO_MPL_VECTOR_PUSH_BACK_SPEC_HPP 00033 #define SCADO_MPL_VECTOR_PUSH_BACK_SPEC_HPP 00034 00035 namespace Sacado { 00036 00037 namespace mpl { 00038 00039 template <class Vector, class T, int N> 00040 struct vector_push_back {}; 00041 00042 template <class Vector, class T> struct vector_push_back<Vector,T,0> : 00043 mpl::vector<T> {}; 00044 template <class Vector, class T> struct vector_push_back<Vector,T,1> : 00045 mpl::vector<typename Vector::t0,T> {}; 00046 template <class Vector, class T> struct vector_push_back<Vector,T,2> : 00047 mpl::vector<typename Vector::t0, 00048 typename Vector::t1,T> {}; 00049 template <class Vector, class T> struct vector_push_back<Vector,T,3> : 00050 mpl::vector<typename Vector::t0, 00051 typename Vector::t1, 00052 typename Vector::t2,T> {}; 00053 template <class Vector, class T> struct vector_push_back<Vector,T,4> : 00054 mpl::vector<typename Vector::t0, 00055 typename Vector::t1, 00056 typename Vector::t2, 00057 typename Vector::t3,T> {}; 00058 template <class Vector, class T> struct vector_push_back<Vector,T,5> : 00059 mpl::vector<typename Vector::t0, 00060 typename Vector::t1, 00061 typename Vector::t2, 00062 typename Vector::t3, 00063 typename Vector::t4,T> {}; 00064 template <class Vector, class T> struct vector_push_back<Vector,T,6> : 00065 mpl::vector<typename Vector::t0, 00066 typename Vector::t1, 00067 typename Vector::t2, 00068 typename Vector::t3, 00069 typename Vector::t4, 00070 typename Vector::t5,T> {}; 00071 template <class Vector, class T> struct vector_push_back<Vector,T,7> : 00072 mpl::vector<typename Vector::t0, 00073 typename Vector::t1, 00074 typename Vector::t2, 00075 typename Vector::t3, 00076 typename Vector::t4, 00077 typename Vector::t5, 00078 typename Vector::t6,T> {}; 00079 template <class Vector, class T> struct vector_push_back<Vector,T,8> : 00080 mpl::vector<typename Vector::t0, 00081 typename Vector::t1, 00082 typename Vector::t2, 00083 typename Vector::t3, 00084 typename Vector::t4, 00085 typename Vector::t5, 00086 typename Vector::t6, 00087 typename Vector::t7,T> {}; 00088 template <class Vector, class T> struct vector_push_back<Vector,T,9> : 00089 mpl::vector<typename Vector::t0, 00090 typename Vector::t1, 00091 typename Vector::t2, 00092 typename Vector::t3, 00093 typename Vector::t4, 00094 typename Vector::t5, 00095 typename Vector::t6, 00096 typename Vector::t7, 00097 typename Vector::t8,T> {}; 00098 00099 } 00100 00101 } 00102 00103 #endif // SCADO_MPL_VECTOR_PUSH_BACK_SPEC_HPP
1.7.4