boost :: pool中不需要模板参数

时间:2012-02-22 01:30:55

标签: c++ templates boost pool

声明boost :: poor是如下所示。

boost::pool<> Obj();

我很好奇如何制作一个不需要模板参数但只需要&lt;&gt;的类模板?

我尝试将其作为boost :: pool在pool.hpp和poolfwd.hpp中进行。

template<class T>
class Fakepool { };  // pool.hpp

template<class T = int>
class Fakepool;   // boost::pool's declaration in poolfwd.hpp 

int main()
{
    Fakepool<float> a;

    Fakepool<> a2; // Can't do this with only <>
}//main()

提前致谢!

1 个答案:

答案 0 :(得分:2)

这是你在找什么?

template<class T = int>
class Fakepool { };

int main()
{
    Fakepool<float> a; // Use float

    Fakepool<> a2; // Default as int
}

你也可以这样做(我认为这就是你的想法)。此处的关键字为default template arguments。但是,在您的示例中,您在声明它之前定义了,这就是问题所在。

template<class T = int>
class Fakepool; 

template<class T>
class Fakepool { }; 

int main()
{
    Fakepool<float> a;

    Fakepool<> a2;
}