我想提供一个习俗
select_on_container_copy_construction()建造/
给我的分配器。
我试图将它直接添加到我的分配器类中,如下所示:
T select_on_container_copy_construction( const T& a ) const {
...
}但这不是所谓的。
我试着把它作为一个类型特性来实现:
namespace std {
template<class T>
struct allocator_traits<static_allocator<T>> {
typedef T value_type;
};
}但是现在我也必须实现所有其他的特性特性。
是否有更简单的方法只需覆盖此函数而不必提供完整的allocator_traits
完整的代码示例可以在这里找到:https://onlinegdb.com/H1iJJIN1N
在向函数添加静态/const时,我尝试了各种变体。
发布于 2018-12-04 19:17:14
名为requirement [allocator.requirements]的分配器采用以下调用语法:
a.select_on_container_copy_construction()并期望返回类型是分配器类型。
您声明了一个附加参数(const T& a),它使上述调用格式不正确,迫使std::allocator_traits返回到dafault实现(返回分配器实例) [allocator.traits]。
静态同种异体select_on_container_copy_construction(const & rhs); 返回:如果表达式格式良好,则为
rhs.select_on_container_copy_construction();否则为rhs。
https://stackoverflow.com/questions/53619450
复制相似问题