C++11 提供std::allocator_traits
类作为使用分配器的标准方式。静态函数std::allocator_traits::construct()
接受一个指向应该构造对象的位置的指针。然而std::allocator_traits::allocate()
,静态函数返回一个allocator::pointer
值,它只需要表现得像一个指针,但它不一定是一个(通常,虽然std::allocator::pointer
需要是一个指针)。
如果通常情况下它们将使用不兼容的类型,那么应该如何使用分配和构造静态方法?只有当pointer
类型实际上可以转换为普通的普通指针时才能使用它们吗?