2010-11-05から1日間の記事一覧

template クラスの SFINAE

C++

template< typename T, typename U = void > struct has_value_type{ static const bool value = false; }; template<typename T> struct has_value_type<T, typename T::value_type>{ static const bool value = true; }; 最初はこんな感じでやろうとしたんですが、これだとうまく行きませんでした</t,></typename>…

複数条件での SFINAE

C++

template<typename T> void func(typename boost::disable_if<boost::is_pod<T> >::type* = 0){ std::cout << "is no POD" << std::endl; } template<typename T> void func(typename boost::enable_if<boost::is_pod<T> >::type* = 0){ std::cout << "is POD" << std::endl; } func(10); // is POD func("test"); // is</boost::is_pod<t></typename></boost::is_pod<t></typename>…