如果T
是Ts...
中的一个,我想写一个函数返回true
template<class T, class... Ts>
bool is_one_of<T, Ts...>();
例如,is_one_of<int, double, int, float>
返回true
,is_one_of<int, double, std::string, bool, bool>
返回false
。
我自己的实现是
template<class T1, class T2>
bool is_one_of<T1, T2>() {
return std::is_same<T1, T2>;
}
template<class T1, class T2, class... Ts>
bool is_one_of<T1, T2, Ts...>() {
if (std::is_same<T1, T2>) {
return true;
}
else {
return is_one_of<T1, Ts...>();
}
}
这种检查对我来说似乎很常见,所以我想知道标准库中是否已经有这样的函数。
https://stackoverflow.com/questions/56720024
复制相似问题