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

时间:2012-10-12 09:26:32

标签: c++ templates pointers

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

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
};

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

1 个答案:

答案 0 :(得分:1)

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

int (*paramname)[N];

或使用辅助类型别名

template<typename T>
using type = T;

然后

type<int[N]> *paramname;

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