小编yum*_*odo的帖子

有人知道 www.mingw.org 的状态吗?

至少从 2021-01-10T15:19:40Z 开始,我无法访问www.mingw.org
据我所知,这是 mingw 的官方网页。

有人知道www.mingw.org的状态吗?或者,任何其他套房的地方可以问这个问题?

mingw

7
推荐指数
1
解决办法
3627
查看次数

为什么libstdc ++的std :: vector的ctor实现不会导致内存泄漏?

我正在使用带有libstdc ++的GCC 7.3.0.

这是std::vectorctor的实施.

      vector(initializer_list<value_type> __l,
         const allocator_type& __a = allocator_type())
      : _Base(__a)
      {
    _M_range_initialize(__l.begin(), __l.end(),
                random_access_iterator_tag());
      }

      // Called by the second initialize_dispatch above
      template<typename _ForwardIterator>
    void
    _M_range_initialize(_ForwardIterator __first,
                _ForwardIterator __last, std::forward_iterator_tag)
    {
      const size_type __n = std::distance(__first, __last);
      this->_M_impl._M_start = this->_M_allocate(__n);
      this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
      this->_M_impl._M_finish =
        std::__uninitialized_copy_a(__first, __last,
                    this->_M_impl._M_start,
                    _M_get_Tp_allocator());
    }
Run Code Online (Sandbox Code Playgroud)

在函数中_M_range_initialize(_ForwardIterator,_ForwardIterator,std::forward_iterator_tag),当我std::__uninitialized_copy_a抛出异常时,this->_M_impl._M_start在这个函数中分配的异常将不会被释放.

这意味着此实现将导致内存泄漏.

但是,libstdc ++是经过充分测试的知名库.我的理解一定是不正确的.

为什么这个实现中没有内存泄漏?

c++ memory-leaks vector c++11

1
推荐指数
1
解决办法
115
查看次数

标签 统计

c++ ×1

c++11 ×1

memory-leaks ×1

mingw ×1

vector ×1