我有一个这种模板的对象:
RTree<int, float, 2, float> tree;
第三个参数是我的树将拥有的维数。我希望每次创建新树时都要更改它。如何用每次更改的变量替换数字?编译器会抛出非const变量的错误。
答案 0 :(得分:1)
这不是模板的工作方式,也不是以这种方式完成的。它们用于编写独立于任何特定类型而非值的代码。你说你
“希望每次创建新树时都要更改”
然后只需给构造函数一个接受整数的参数并从那里开始。
答案 1 :(得分:1)
您无法在运行时更改模板参数。
如果您打算在编译时的每一个树的新减速度中更改树的维数,那么您可以这样做:
RTree<int, float, __COUNTER__, float> tree;
虽然在我看来,这种用途有限。
如果您打算在运行时更改它,请考虑将计数保留在RTree
类中或通过构造函数参数,以便您可以指定树的维度。