我发现typename Enable = void在定义protobuf的,
template<typename T, typename Enable = void>
struct RefTypeTraits;
Run Code Online (Sandbox Code Playgroud)
但是,我找不到Enable在这个头文件中使用的,这让我很困惑.typename Enable = void模板中的含义是什么?
这是为了让SFINAE具有模板专业化,就像它一样
template<typename T>
struct RefTypeTraits<T, std::enable_if_t<some_condition<T>::value>> {
// ... specialization for T which respects condition
};
Run Code Online (Sandbox Code Playgroud)