使用非const变量模板

时间:2015-12-08 18:04:53

标签: c++ oop templates object

我有一个这种模板的对象:

RTree<int, float, 2, float> tree;

第三个参数是我的树将拥有的维数。我希望每次创建新树时都要更改它。如何用每次更改的变量替换数字?编译器会抛出非const变量的错误。

2 个答案:

答案 0 :(得分:1)

这不是模板的工作方式,也不是以这种方式完成的。它们用于编写独立于任何特定类型而非的代码。你说你

  

“希望每次创建新树时都要更改”

然后只需给构造函数一个接受整数的参数并从那里开始。

答案 1 :(得分:1)

您无法在运行时更改模板参数。

如果您打算在编译时的每一个树的新减速度中更改树的维数,那么您可以这样做:

RTree<int, float, __COUNTER__, float> tree;

虽然在我看来,这种用途有限。

如果您打算在运行时更改它,请考虑将计数保留在RTree类中或通过构造函数参数,以便您可以指定树的维度。