なかなか面白いが、型を変数として扱うのはどうなんだろう。型に対して操作したいときは、いちいちstd::valueメタ関数を使うのだろうか。もっとも、多くの場合(SFINAEに使いたい場合など)、すでにその型に対する変数(parameterの形などで)を作っているから、それを利用出来るだろうが。
#include "type.hpp" #include "value.hpp" #include "apply.hpp: #include "is_same.hpp" template < typename T1, typename T2 > void f( T1 t1, T2 t2 ) { using namespace boost::ftmpl ; // true bool const result = unwrap_value< BOOST_FTMPL_UNWRAP(apply( is_same, t1, t2 ) ) >::type::value ; // type_t< true_t > using result_type = BOOST_FTMPL_UNWRAP( apply( is_same, t1, t2 ) ) ; }
何にせよ、decltypeにより、夢が広がる。
No comments:
Post a Comment