1

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

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

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

4

1 回答 1

1

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

int (*paramname)[N];

或使用辅助类型别名

template<typename T>
using type = T;

然后

type<int[N]> *paramname;

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

于 2012-10-12T12:37:23.700 回答