c++ - Type traits to match pointer to collections -
c++ - Type traits to match pointer to collections -
i writing sfinae matching class can match pointer collection type.
we have std::is_pointer , have written:
// sfinae test const_iterator  fellow member type template <typename t> class has_const_iterator{ private:     typedef char true;     typedef long false;      template <typename c> static true test(typename c::const_iterator*) ;     template <typename c> static false test(...);  public:     enum { value = sizeof(test<t>(0)) == sizeof(char) }; };    how can utilize both std::is_pointer , has_const_iterator in std::enable_if or how can write new type traits can match pointer collection type? thanks.
   template<class t> struct is_pointer_to_collection       : std::integral_constant<bool, std::is_pointer<t>::value             && has_const_iterator<typename std::remove_pointer<t>::type>::value> {};    
demo.
 c++ templates c++11 sfinae typetraits 
 
  
Comments
Post a Comment