小编Mic*_*rth的帖子

是否可以定义一个可以将模板化对象作为参数的非模板函数

我正在使用模板化的 C++ 类。

我实例化了这个类的两个不同的模板版本:

ExampleClass<ParamType1> obj1;
ExampleClass<ParamType2> obj2;
Run Code Online (Sandbox Code Playgroud)

所以我有两个对象是同一个类,但具有不同的模板参数。

我现在希望能够定义一个可以将 obj1 或 obj2 作为参数的函数(极其简化的示例!):

int func(ExampleClassXXX obj_param)
{
  return obj_param.member_operation();
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以调用func(obj1)func(obj2

这是可能的,如果是,函数定义指定obj_param参数所需的语法是“使用任何模板参数创建的 ExampleClass 的实例”?

这个问题的答案涵盖了更一般的一步的情况——“obj_param”是任何类型。该答案的文本中缺少大部分细节,只有当您单击“实时演示”时,您才会看到它们正在实例化模板struct以便能够传入通用参数,这非常难看。

看起来这应该是一件很常见的事情,但是到目前为止,谷歌搜索让我失败了(搜索“将模板化对象作为函数参数传递”)

c++ templates

2
推荐指数
1
解决办法
519
查看次数

标签 统计

c++ ×1

templates ×1