请我想要如何使用非类型模板参数指向对象的完整示例,我试过这段代码,但它包含很多错误
class Foo
{
public:
Foo()
{
}
};
template<typename T,Foo* foo>
class TFoo
{
public:
TFoo()
{
}
};
int main()
{
Foo foo;
TFoo<float,&foo> tfoo;
}
答案 0 :(得分:0)
要在编译时评估模板参数以实例化模板,但&foo
的值仅在运行时才知道。那是你的问题。
可能你应该使用不同的架构。可能是您可以将Foo*
作为非模板参数传递给构造函数。 (我甚至无法想象一个目的,指针作为模板参数可能会有用)。