00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_TRAITS_COPY_EXPRESSION_CONST_REF_CONTAINER_INCLUDE
00013 #define MTL_TRAITS_COPY_EXPRESSION_CONST_REF_CONTAINER_INCLUDE
00014
00015 #include <boost/numeric/mtl/mtl_fwd.hpp>
00016
00017 namespace mtl { namespace traits {
00018
00020
00022 template <typename Container>
00023 struct copy_expression_const_ref_container
00024 {
00025 typedef const Container& type;
00026 };
00027
00028
00029 template <class E1, class E2, typename SFunctor>
00030 struct copy_expression_const_ref_container< vector::vec_vec_pmop_expr<E1, E2, SFunctor> >
00031 {
00032 typedef vector::vec_vec_pmop_expr<E1, E2, SFunctor> type;
00033 };
00034
00035 template <class E1, class E2, typename SFunctor>
00036 struct copy_expression_const_ref_container< vector::vec_vec_aop_expr<E1, E2, SFunctor> >
00037 {
00038 typedef vector::vec_vec_aop_expr<E1, E2, SFunctor> type;
00039 };
00040
00041 template <typename Functor, typename Vector>
00042 struct copy_expression_const_ref_container< vector::map_view<Functor, Vector> >
00043 {
00044 typedef vector::map_view<Functor, Vector> type;
00045 };
00046
00047 template <typename Scaling, typename Vector>
00048 struct copy_expression_const_ref_container< vector::scaled_view<Scaling, Vector> >
00049 {
00050 typedef vector::scaled_view<Scaling, Vector> type;
00051 };
00052
00053 template <typename Vector, typename RScaling>
00054 struct copy_expression_const_ref_container< vector::rscaled_view<Vector, RScaling> >
00055 {
00056 typedef vector::rscaled_view<Vector, RScaling> type;
00057 };
00058
00059 template <typename Vector, typename Divisor>
00060 struct copy_expression_const_ref_container< vector::divide_by_view<Vector, Divisor> >
00061 {
00062 typedef vector::divide_by_view<Vector, Divisor> type;
00063 };
00064
00065 template <typename Vector>
00066 struct copy_expression_const_ref_container< vector::conj_view<Vector> >
00067 {
00068 typedef vector::conj_view<Vector> type;
00069 };
00070
00071
00072
00073
00074
00075 }}
00076
00077 #endif // MTL_TRAITS_COPY_EXPRESSION_CONST_REF_CONTAINER_INCLUDE