声明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()
提前致谢!
答案 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;
}