38 #include <boost/fusion/tuple.hpp>
39 #include <boost/fusion/sequence.hpp>
40 #include <boost/fusion/algorithm.hpp>
45 #define AUTO( a, b ) __typeof__( b ) a = (b);
51 namespace fusion = boost::fusion;
60 template<
int Index>
struct gmc
62 static const int value = Index;
63 typedef mpl::void_ reference_element_type;
66 template<
typename Geo_t>
69 typedef typename mpl::if_<fusion::result_of::has_key<Geo_t,vf::detail::gmc<0> >,mpl::identity<vf::detail::gmc<0> >,mpl::identity<vf::detail::gmc<1> > >::type::type key_type;
70 typedef typename fusion::result_of::value_at_key<Geo_t,key_type>::type::element_type* gmc_ptrtype;
71 typedef typename fusion::result_of::value_at_key<Geo_t,key_type>::type::element_type gmc_type;
73 static gmc_ptrtype
get( Geo_t
const& geom )
75 return fusion::at_key<key_type>( geom ).
get();
77 static Geo_t clone( Geo_t
const& geom )
80 fusion::at_key<key_type>( geom2 ) = fusion::at_key<key_type>( geom )->clone();
88 #include <feel/feelcore/feel.hpp>
97 #include <feel/feelvf/stdmathfunctors.hpp>
100 #include <feel/feelvf/symm.hpp>
113 #include <feel/feelvf/integrator.hpp>
122 #include <boost/preprocessor/comparison/equal.hpp>