非类型模板参数指向对象

时间:2016-03-05 06:21:46

标签: c++ templates non-type

请我想要如何使用非类型模板参数指向对象的完整示例,我试过这段代码,但它包含很多错误

class Foo
{
    public:
        Foo()
        {

        }
};

template<typename T,Foo* foo>
class TFoo
{
public:
    TFoo()
    {

    }
};
int main()
{
    Foo foo;
    TFoo<float,&foo> tfoo;
}

1 个答案:

答案 0 :(得分:0)

要在编译时评估模板参数以实例化模板,但&foo的值仅在运行时才知道。那是你的问题。

可能你应该使用不同的架构。可能是您可以将Foo*作为非模板参数传递给构造函数。 (我甚至无法想象一个目的,指针作为模板参数可能会有用)。