帮助程序功能,用于检查值是否是其任何参数

ep

我需要使用辅助函数检查类型T的值是否是其任何参数。

例如,使用类似下面的代码

enum class my_enum{k1, k2, k3, k4, k5};
auto v{my_enum::k1};
if (is_any_of(v, my_enum::k1, my_enum::k4, my_enum::k5)) {
}

而不是使用if (v == my_enum::k1 || v == my_enum::k4 || v== my_enum::k5) {}或使用switch-case

如何bool is_any_of()在C ++ 11中实现可变参数函数

如何使用C ++ 17折叠表达式使实现变得更简单?

艾萨克·莫顿

只要所有类型都可以相互比较,它就可以在C ++ 11中工作,并且可以满足您的要求。

template<typename T, typename R>
bool is_any_of(T t, R r)
{
   return t == r;
}

template<typename T, typename R, typename... ARGS>
bool is_any_of(T t, R r, ARGS... args)
{
   if (t == r)
   {
      return true;
   }
   else
   {
      return is_any_of(t, args...);
   }
}

这要紧凑得多,并且可以在C ++ 17中使用

template<typename T, typename... ARGS>
bool is_any_of(T t, ARGS... args)
{
   return ((t == args) || ...);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Twilio Sms flutter应用程序中是否有任何帮助功能或程序包有帮助

检查字符串是否包含哈希中的任何键,并返回其包含的键的值

Woocommerce:用于检查购物车是否包含任何产品的功能

什么是php函数,用于同时检查$ _GET参数的存在和访问其值

检查值是否小于数组的任何值

C ++中是否有任何可用于链表的内置函数,其功能类似于Java提供的indexOf函数?

Argparse:检查是否已传递任何参数

Argparse:检查是否已传递任何参数

当应用于值列表的任何元素时,检查方法是否引发异常

检查是否在多值参数中选择了逗号分隔列表中的任何值(在SQL数据集中)

如何在React组件中使用Jest和Enzyme来检查函数中是否包含参数而不检查其值?

如何检查是否设置了可选功能参数

检查功能中是否存在参数

javascript检查功能参数是否满足条件

是否有任何类型的用于 watchOS 的 BluetoothKit 可以导入以检查蓝牙连接状态和其他蓝牙相关功能

检查值是否是任何类型的字段

检查“任何”值是否为对象

检查数组中是否有任何值

检查是否在Slicer中选择了任何值

脚本检查是否比参数更新的文件,使用-nt帮助

如何创建用于检查值是否为给定类实例的自定义类型保护程序?

BASH:是否可以根据其参数更改功能提示?

检查路由参数是否为特定值?

熊猫:检查列值是否小于任何先前的列值

检查对象属性是否更改其值

从对象获取属性并检查其是否包含值

分而治之检查列表中的值是否等于其索引

检查附加的事件处理程序是否有任何DOM元素

put_money是否按值或引用保留其参数?