00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
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