如何解决您好世界示例AllocatorAwareContainer
我已经搜索过Google和SO,但感到惊讶的是没有看到AllocatorAwareContainer概念的Hello World示例。我正在寻找这样的东西:
template <typename T,typename Allocator>
class HeapValue { // Value semantics of one object on the heap.
public:
explicit HeapValue(const Allocator& alloc = Allocator()) noexcept;
explicit HeapValue(const T& value,const Allocator& alloc = Allocator());
HeapValue(const HeapValue&);
HeapValue(const HeapValue&,const Allocator&);
HeapValue(HeapValue&&);
HeapValue(HeapValue&&,const Allocator&);
~HeapValue();
HeapValue& operator=(const HeapValue&);
HeapValue& operator=(HeapValue&&);
reference operator*() { return *m_ptr; }
const_reference operator*() const { return *m_ptr; }
pointer operator*() { return m_ptr; }
const_pointer operator*() const { return m_ptr; }
explicit operator bool() const { return static_cast<bool>(m_ptr); }
private:
pointer m_ptr;
allocator_type m_alloc;
};
template <typename T>
using PMRHeapValue = HeapValue<T,std::pmr::polymorphic_allocator<T>>;
int main() {
std::byte buffer[64] = {}; // A small buffer on the stack
std::pmr::monotonic_buffer_resource pool{std::data(buffer),std::size(buffer)};
PMRHeapValue<std::pmr::vector<int>> opt(&pool);
opt->push_back(42); // The vector should be using the pool too,right?
return opt->size();
}
我可以尝试通过std::vector
的源进行钓鱼,但这似乎应该放在某个示例中。应该如何定义这组成员函数以正确支持AllocatorAwareContainer概念?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。