00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_TRAITS_IS_STATIC_INCLUDE
00013 #define MTL_TRAITS_IS_STATIC_INCLUDE
00014
00015 #include <boost/mpl/bool.hpp>
00016 #include <boost/numeric/mtl/mtl_fwd.hpp>
00017
00018 namespace mtl { namespace traits {
00019
00021 template <typename T> struct is_static : boost::mpl::false_ {};
00022
00023 template <std::size_t Size> struct is_static<mtl::vector::fixed::dimension<Size> > : boost::mpl::true_ {};
00024 template <std::size_t Rows, std::size_t Cols> struct is_static<mtl::fixed::dimensions<Rows, Cols> > : boost::mpl::true_ {};
00025
00026 template <typename V, typename P> struct is_static<mtl::vector::dense_vector<V, P> > : is_static<typename P::dimension> {};
00027
00028 template <typename V, typename P> struct is_static<mtl::matrix::dense2D<V, P> > : is_static<typename P::dimensions> {};
00029 template <typename V, unsigned long M, typename P> struct is_static<mtl::matrix::morton_dense<V, M, P> > : is_static<typename P::dimensions> {};
00030 template <typename V, typename P> struct is_static<mtl::matrix::compressed2D<V, P> > : is_static<typename P::dimensions> {};
00031
00032 }}
00033
00034 #endif // MTL_TRAITS_IS_STATIC_INCLUDE