STL中的简单allcator

在阅读《STL源码分析》的过程中,第二章2.1.1设计一个简单的空间配置器,在vs2019上通不过,报错:

错误 C2440 “static_cast”: 无法从“JJ::allocator<int>”转换为“JJ::allocator<U>”

D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vector 676

发现是没有加拷贝构造函数:

template<typename U>
allocator(const allocator<U>&) {}

然后重新编译,报错:

错误 C2512 “JJ::allocator<int>::allocator”: 没有合适的默认构造函数可用

D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\xmemory 1328

继续加:

allocator() {}

OK,成功编译。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容