联合类型的模板专业化

use*_*232 3 c++ union templates sfinae

如何专门化union类型模板?假设我有模板功能

template <typename T>
void foo(T value);
Run Code Online (Sandbox Code Playgroud)

如果T不是任何union类型,我想禁止调用此函数。我该如何实现?

max*_*x66 7

如果T不是任何联合类型,我想禁止调用此函数。我该如何实现?

也许与std::is_union

template <typename T>
std::enable_if_t<std::is_union<T>::value> foo(T value)
 { /* ... */ }
Run Code Online (Sandbox Code Playgroud)