指向作为模板参数的数组的指针

Pointer to array as template parameter

本文关键字:参数 数组 指针      更新时间:2023-10-16

我想用模板参数来实例化我的对象。其中一个参数是指向数组的指针,我正在寻找正确的语法。

const MyCustomType* array[2] = { &object1, &object2 };
OBJ1 < 10, 10, array > myobj1;

下面是类OBJ1的示例。

template < int a, int b, /* help ! */ >
class OBJ1
{
  public:
    OBJ1();
    ~OBJ1();
  private:
    //methods
};

使用第三个模板参数的正确语法是什么?这可能吗?

对于大小为 n 的 int 类型的数组,语法为

int (*paramname)[N];

或者使用帮助程序类型别名

template<typename T>
using type = T;

然后

type<int[N]> *paramname;

在您的情况下,您将指针传递给数组的第一个元素,而不是指向数组的指针。您需要在数组名称前面加上 & 以在传递数组时执行后者。