-
说明
-
vector<bool>
-
vector<bool>
实现-
说明
- 单独实现类这个模板.
-
vector<bool>
实现// CLASS vector<bool> template <class _Alloc> class vector<bool, _Alloc> : public _Vb_val<_Alloc>
- 单独实现了这个模板类。
-
下标运算符
[]
_NODISCARD _CONSTEXPR20_CONTAINER const_reference operator[](size_type _Off) const noexcept /* strengthened */ { #if _CONTAINER_DEBUG_LEVEL > 0 _STL_VERIFY(_Off < this->_Mysize, "vector<bool> subscript out of range"); #endif // _CONTAINER_DEBUG_LEVEL > 0 const_iterator _It = begin(); _It._Advance(_Off); return *_It; } _NODISCARD _CONSTEXPR20_CONTAINER reference operator[](size_type _Off) noexcept /* strengthened */ { #if _CONTAINER_DEBUG_LEVEL > 0 _STL_VERIFY(_Off < this->_Mysize, "vector<bool> subscript out of range"); #endif // _CONTAINER_DEBUG_LEVEL > 0 iterator _It = begin(); _It._Advance(_Off); return *_It; }
-
返回的类型声明
template <class _Alvbase_wrapped> class _Vb_reference : public _Vb_iter_base<_Alvbase_wrapped> using reference = _Vb_reference<_Alvbase_wrapped>;
- 模板类型
-
bool
运算符重载_CONSTEXPR20_CONTAINER operator bool() const noexcept { return (*_Getptr() & _Mask()) != 0; }
-
代理类
- 这类代理类还是挺多的.
- 通过包装的方式行为特别像某一个类.
- 但是有个问题就是
auto
不识别. - 所以在这种情况下需要用显式声明或者是
static_cast
,这种就有点脱裤子放屁的感觉了.
-
-
缺点
auto的问题
最新推荐文章于 2023-06-03 18:32:51 发布