quoteSynopsistemplate< template< typename P1 > class F , typename Tag = unspecified > struct quote1 { // unspecified // ... }; ... template< template< typename P1,... typename Pn > class F , typename Tag = unspecified > struct quoten { // unspecified // ... }; Descriptionquoten is a higher-order primitive that wraps an n-ary Metafunction to create a corresponding Metafunction Class. Header#include <boost/mpl/quote.hpp> Parameters
Expression semanticsFor any n-ary Metafunction f and arbitrary type tag: typedef quoten<f> g; typedef quoten<f,tag> g;
Exampletemplate< typename T > struct f1 { typedef T type; }; template< typename T1, typename T2, typename T3, typename T4, typename T5 > struct f5 { // no 'type' member! }; typedef quote1<f1>::apply<int>::type t1; typedef quote5<f5>::apply<char,short,int,long,float>::type t5; BOOST_MPL_ASSERT(( is_same< t1, int > )); BOOST_MPL_ASSERT(( is_same< t5, f5<char,short,int,long,float> > )); |