00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_ENABLE_IF_INCLUDE
00013 #define MTL_ENABLE_IF_INCLUDE
00014
00015 #include <boost/mpl/if.hpp>
00016 #include <boost/type_traits.hpp>
00017 #include <boost/utility/enable_if.hpp>
00018 #include <boost/numeric/mtl/utility/tag.hpp>
00019 #include <boost/numeric/mtl/utility/category.hpp>
00020
00021
00022 namespace mtl { namespace traits {
00023
00024 template <typename Value, typename Type = void>
00025 struct enable_if_matrix
00026 : boost::enable_if<is_matrix<Value>, Type>
00027 {};
00028
00029 template <typename Value, typename Type = void>
00030 struct enable_if_vector
00031 : boost::enable_if<is_vector<Value>, Type>
00032 {};
00033
00034 template <typename Value, typename Type = void>
00035 struct enable_if_scalar
00036 : boost::enable_if<is_scalar<Value>, Type>
00037 {};
00038
00039
00040
00041
00042
00043 }}
00044
00045 #endif // MTL_ENABLE_IF_INCLUDE