2010-05-11

これはすごい

/sandbox/ftmpl

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

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.