我正在尝试使用boost::fast_pool_allocator
代替标准分配器,但它不起作用(具有讽刺意味的是与另一个升级库),因为fast_pool_allocator
具有多个模板参数,即使它声称与std::allocator
兼容,除第一个以外的所有内容都有默认值。
我试图将其作为需要单个模板参数的类模板传递。具体错误:
error: type/value mismatch at argument 3 in template parameter list for "template<class Point, template<class, class> class Container, template<class> class Allocator> class boost::geometry::model::multi_point"
error: expected a template of type "template<class> class Allocator", got "template<class T, class UserAllocator, class Mutex, unsigned int NextSize, unsigned int MaxSize> class boost::fast_pool_allocator"
有没有办法让它真正起作用?
答案 0 :(得分:4)
使用以下模板代替boost::fast_pool_allocator
template <class T>
using fast_pool_allocator_t = boost::fast_pool_allocator<T>;
如果您不使用C ++ 11,这也可以。
template <class T>
struct fast_pool_allocator_t : boost::fast_pool_allocator<T>
{ };