c – 检查int或list
发布时间:2020-12-16 03:25:04 所属栏目:百科 来源:网络整理
导读:任何人都可以让我知道实现这一目标的最佳方法. 说,我有一个模板功能 templatetypename ARGUMENTvoid get_result(ARGUMENT ag){// arg can be a single object of a particular object or list of objects of that particular class. //rest} 有没有办法可以
任何人都可以让我知道实现这一目标的最佳方法.
说,我有一个模板功能 template<typename ARGUMENT> void get_result(ARGUMENT &ag) { // arg can be a single object of a particular object or list of objects of that particular class. //rest } 有没有办法可以检查& ag是单个对象还是对象列表.此外,使用给定的模板界面. 如果答案是通过类接口以某种方式通过模板规范并不重要.唯一的问题是我不想指定对象类型或列表类型. 防爆. ag = int或ag = list CB 解决方法
你可以消除一些类型特征的歧义:
#include <type_traits> template<typename T> T get_result(T arg) { return detail::get_result(arg,typename std::is_arithmetic<T>::type() ); } namespace detail { template<typename T> T get_result(T arg,std::false_type /* dummy */) { } template<typename T> T get_result(T arg,std::true_type /* dummy */) {} } 见here 这个特性显然只是抽出数字类型,而不是容器.返回类型将需要一些工作.在答案here和here中存在用于检测容器类型的想法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |