{"author_name":"yohhoy","title":"Detection Idiom","author_url":"https://blog.hatena.ne.jp/yohhoy/","blog_url":"https://yohhoy.hatenadiary.jp/","version":"1.0","published":"2015-11-03 00:00:00","width":"100%","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fyohhoy.hatenadiary.jp%2Fentry%2F20151103%2Fp1\" title=\"Detection Idiom - yohhoy\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","categories":["C++","C++1z"],"type":"rich","provider_url":"https://hatena.blog","url":"https://yohhoy.hatenadiary.jp/entry/20151103/p1","blog_title":"yohhoy\u306e\u65e5\u8a18","height":"190","image_url":null,"provider_name":"Hatena Blog","description":"C++1z(C++17)\u6a19\u6e96\u30d8\u30c3\u30c0<type_traits>\u306b\u8ffd\u52a0\u3055\u308c\u308bstd::void_t\u30af\u30e9\u30b9\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u7528\u3044\u305f\u30a4\u30c7\u30a3\u30aa\u30e0\u3002\u30af\u30e9\u30b9\u30e1\u30f3\u30d0\u306e\u5b58\u5728\u691c\u77e5\u3084\u3001\u578b\u306b\u5bfe\u3057\u3066\u7279\u5b9a\u306e\u5f0f\u304c\u6709\u52b9\u306a\u3053\u3068\u3092\u691c\u77e5\u3067\u304d\u308b\u3002 // C++1z: \u578bT\u304c\u30e1\u30f3\u30d0type\u3092\u6301\u3064\u304b\uff1f template <class, class = std::void_t<>> struct has_type_member : std::false_type {}; template <class T> struct has_type_member<T, void_t<typename T::type>> : std::true_type\u2026"}