00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef PHYSICAL_ZERO_VECTOR
00015 #define PHYSICAL_ZERO_VECTOR
00016
00017 #include <boost/mpl/vector_c.hpp>
00018 #include <boost/mpl/push_back.hpp>
00019
00020
00021 namespace physical {
00022
00023 namespace detail {
00024
00025
00026
00027 template<int N>
00028 struct zero_vector;
00029
00030 template<int N>
00031 struct zero_vector {
00032 typedef typename boost::mpl::push_back<typename zero_vector<N-1>::type, boost::mpl::integral_c<int,0> >::type type;
00033 };
00034
00035 template<>
00036 struct zero_vector<1> {
00037 typedef boost::mpl::vector_c<int,0> type;
00038 };
00039
00040 };
00041
00042 };
00043
00044 #endif