【发布时间】:2023-03-03 15:17:01
【问题描述】:
我正在尝试实现answer given on my question over at CodeReview.SE。基本上,我想访问模板结构中的一些静态变量。考虑以下示例代码:
#include <iostream>
using namespace std;
template<const int idx>
struct Data{
static int bar;
};
template<const int idx>
int getBar(){
return Data<idx>::bar;
}
int main() {
const int n = 2; // Arbitrary number
cout << getBar<n>();
return 0;
}
编译器无法识别我希望在程序中使用Data<n> - 但是,它可以很好地识别初始的getBar<n> 函数,从错误消息中可以看出:
undefined reference to `Data<2>::bar'
我如何告诉编译器使模板结构也可用?
【问题讨论】:
标签: c++ templates template-meta-programming