std-make
std-make copied to clipboard
Fix `is_product_type` using `product_type` interface
is_product_type
is defined now as follows
template <typename T>
struct is_product_type : is_base_of<product_type_tag, product_type_traits<T>> {};
and force the specialization to inherit from product_type_tag
. This is intrusive and don't check all. The definition should probe that the specialization product_type_traits<T>
provides the good interface instead, or better yet that the product_type
interface is respected.
The advantage of the tag however is that it improves compile time.