传入的模板类型与基类型或对象的比较
Comparisons of template type passed in, to basetypes or objects
是否可以比较以形式传递给函数的模板类型
/* 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法规。
您可以使用:
template <class BaseType>
void foo(BaseType bar){
if ( std::is_class<BaseType>::value || std::is_fundamental<BaseType>::value )
{
}
}
然而,根据您试图解决的问题,模板专业化可能同样有效或更好。
相关文章:
- std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
- C++ 多态模板类,模板类型对象的实例化
- 如何分配适合容纳 T 类型对象的缓冲区(可能过度对齐、可能有运算符 new 等)
- 如何构造一个 std::variant 类型对象,其自身 Templated 和构造函数转发参数
- C++:初始化指向具有不同类型对象的指针数组
- 在类 C++ 中构造的模板类型对象
- 如何将颁发者名称设置为x509_req类型对象
- 将任何数据类型/对象作为参数传递以确定其大小
- 将引用类型对象的数组从C#封送到C++
- <T> 从类型对象创建类型<T1>对象的构造函数
- C++是否有现有的方法来检查对象是否是派生类型对象
- C 模板:创建与现有对象相同的类型对象
- 链接列表中的虚函数 - 多种返回类型(对象)
- 没有适当操作员()的类型对象的呼叫
- 制作垫子类型对象的数组.输出窗口显示同一帧
- 抽象类型对象的分配
- 在std::list中就地创建自定义类型对象
- 接受泛型列表类型对象的参数
- C++-将模板类型对象强制转换为特定的数据类型
- 试图在C++中打印存储在类型对象数组中的信息