C++标准库
rasishou
这个作者很懒,什么都没留下…
展开
-
<exception>
<exception>中定义的exception类很简单:class exception{public: exception()noexcept{} virtual ~exception()noexcept{} virtual const char*what()const noexcept{ return "std::exception"; ...原创 2018-04-18 21:37:44 · 165 阅读 · 0 评论 -
<memory>:allocator
<memory>中的allocator作为STL中默认的内存分配器,它的定义如下:template<typename _Tp>class allocator: public __allocator_base<_Tp>{public: typedef size_t size_type; typedef ptrdiff_t di...原创 2018-04-18 22:25:40 · 219 阅读 · 0 评论 -
string的sso实现
sso的全称是Small String Optimization,小字符串优化。struct _Alloc_hider : allocator_type // TODO check __is_final { _Alloc_hider(pointer __dat, const _Alloc& __a = _Alloc()) : allocator_type(__a), _M_...原创 2018-05-10 20:13:00 · 1362 阅读 · 0 评论 -
shared_ptr的拷贝构造函数
假设shared_ptr的模板参数为T,它的一个构造函数为:template< class Y >explicit shared_ptr( Y* ptr );其中T可以等于Y,也可以不等于Y。那么对于它的拷贝构造函数:shared_ptr( const shared_ptr& r ) noexcept;和template< class Y >shared_p...原创 2018-05-07 22:41:19 · 4476 阅读 · 0 评论 -
iterator
迭代器首先要看的是一些空类: struct input_iterator_tag { }; struct output_iterator_tag { }; struct forward_iterator_tag : public input_iterator_tag { }; struct bidirectional_iterator_tag : public forward_ite...原创 2018-05-08 08:54:20 · 268 阅读 · 0 评论