c – 检查int或list

任何人都可以让我知道实现这一目标的最佳方法.

说,我有一个模板功能

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

这个特性显然只是抽出数字类型,而不是容器.返回类型将需要一些工作.在答案herehere中存在用于检测容器类型的想法

相关文章

/** C+⬑ * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录&lt;future&gt;future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...