C++ 这种模板专业化背后的直觉?
你能帮我理解这种模板专门化背后的直觉吗C++ 这种模板专业化背后的直觉?,c++,c++11,templates,c++17,variadic-templates,C++,C++11,Templates,C++17,Variadic Templates,你能帮我理解这种模板专门化背后的直觉吗 template<typename T, typename _ = void> struct is_list : std::false_type {}; template<typename... Ts> struct is_list_helper {}; template<typename T> struct is_list< T, std::conditional_t<
template<typename T, typename _ = void>
struct is_list : std::false_type {};
template<typename... Ts>
struct is_list_helper {};
template<typename T>
struct is_list<
T,
std::conditional_t<
false,
is_list_helper<
typename T::size_type, // written only for example
decltype(std::declval<T>().size()), // written only for example
>,
void
>
> : public std::true_type {};
模板
结构是\u列表:std::false\u类型{};
模板
结构是_list_helper{};
模板
结构是列表<
T
std::有条件的<
假,,
是列表帮助器吗<
typename T::size\u type,//仅为示例编写
decltype(std::declval().size()),//仅为示例编写
>,
无效的
>
>:public std::true_type{};
is\u容器
应该是is\u列表
。。。这是一个普通构造的复杂版本,它是struct is_list:true_type{}代码>is\u容器
应该是is\u列表
。。。这是一个普通构造的复杂版本,它是struct is_list:true_type{}代码>