なかなか面白いが、型を変数として扱うのはどうなんだろう。型に対して操作したいときは、いちいち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