C++17 の std::void_t

C++17 では std::void_t というメタ関数が追加されるらしい。
これは、

template<typename...>
using void_t = void;

と、いう風に定義されています。

[使い方]

このメタ関数は次のように使うみたい。

template<typename, typename = std::void_t<> >
struct has_type_member : std::false_type {};

template<typename T>
struct has_type_member<T, std::void_t<typename T::type>> : std::true_type {};

確かに便利そう。

[参照]