传入的模板类型与基类型或对象的比较

时间:2014-11-10 01:39:18

标签: c++ templates object

是否可以比较以

形式传递给函数的模板类型
/* Stuff prior to the function being called */
template <class BaseType>
void foo(BaseType bar){
    if(BaseType == 'Class made Object || some primitive Datatype')
    // This in hopes to make just one function that accepts, as a template, any argument
}

==运算符不起作用,就其意图而言,这是在C ++我知道Java持有类但不确定过去的任何事情,还没有开始自学,然而。 / ******************* **
添加评论以扩展给定问题。
************************************************** * /
我对模板atm的概念很陌生,我了解它们的整体工作方式,并了解它们是如何传递的,但希望能够从使用模板参数调用的函数内部传递给它的内容,如问题说,目前试图获取BaseType是一个创建的对象,还是它是原始数据类型之一。这是令人费解的,但我想看看它是否可以在模板中传入不同参数的同一函数上做单独的点。可以将此评论添加到主要问题中,希望这不符合SO法规。

1 个答案:

答案 0 :(得分:1)

您可以使用:

template <class BaseType>
void foo(BaseType bar){
    if ( std::is_class<BaseType>::value || std::is_fundamental<BaseType>::value )
    {
    }
}

但是,根据您尝试解决的问题,模板专业化可能会起作用或更好。