c – 使用模板与函数的好处以及如何在模板中推断类型
发布时间:2020-12-16 07:13:07 所属栏目:百科 来源:网络整理
导读:我已经阅读了很多关于推导变量类型的帖子,两者都使用auto和without.我想我有两个问题. 让我们以一个简单的范围函数为例.我可以把它作为模板并调用它: template class T,T min,T max bool inRange(T value) { return min = value value = max;}bool bbb = in
我已经阅读了很多关于推导变量类型的帖子,两者都使用auto和without.我想我有两个问题.
让我们以一个简单的范围函数为例.我可以把它作为模板并调用它: template <class T,T min,T max> bool inRange(T value) { return min <= value && value <= max; } bool bbb = inRange<int,5,10>(7); 或者我能做到: template <class T> bool inRange(T min,T max,T value) { return min <= value && value <= max; } bool bbb = inRange(5,10,7); 问题: >是否有一种方法(缺少为short,int,long,double等创建多个模板1),可以推导出类型,以便可以使用inRange< min,max>(value)调用模板 解决方法
>目前不是.有人建议将其添加到C:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4469.html的未来版本中 >第一种方法inRange< T,min,max>(value)相当尴尬,因为我们还没有实现上述提议,也无法写入inRange< min,max>(value).如果在编译时不知道min和max,那么第二种方法inRange(min,value)无论如何都是你唯一的选择.第二类内联函数应该与第一类内联函数一样有效,因此很少有任何优势.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |