cost 444 ms
在成员初始化列表之前的构造函数中抛出异常? - Throwing exception in constructor before member initializer list?

例如,假设我有 class 我想用一个接受向量和索引的构造函数初始化这个 class (仅作为示例)。 所以我得到 但是,访问向量中的随机索引是不安全的,因为如果超出范围,它将是 UB。 所以,我抛出一个异常 然而,这实际上并没有拯救我,因为成员初始化器列表在构造函数体之前运行。 因此,可能的越界 ...

如何设计具有强异常保证的 function? - How do I design a function with a strong exception guarantee?

我有一个 function,我希望它有强大的异常保证: 我能想到的使它具有强大的异常保证的唯一方法如下: 然而,这真的很丑陋而且容易出错吗?有没有比我上面提出的更好的解决方案,我能听到有人告诉我我需要使用 RAII,但我无法弄清楚如何,因为pop_back function正常返回时不得进行操作。 ...

复合模式中的异常安全 - Exception safety in the composite pattern

我使用复合模式来表示设备,我想在关闭它们的电源(调用它们的 dtor)之前将其关闭。 我在尝试对设备进行分组时遇到了问题,尤其是关于它们的状态。 在以下情况下我将如何进行: 工作站可能包含多个设备,您希望在切断工作站电力之前安全关闭所有设备。 (在这个比喻中,我很便宜)。 还值得注意的是,我 ...

std::atomic 怎么样<T> ::operator= 为不可变类型实现? - How is std::atomic<T>::operator= implemented for immutable types?

我了解到线程间通信的一种方式是共享一些原子数据结构。 例如: 尽管Point::operator=(Point const &amp;)被删除,但调用std::atomic&lt;Point&gt;的赋值运算符似乎没有问题,如下所示: 如何实施此操作? 我可能会想到的一种解决方案是使用pl ...

私有 function 成员是否应该异常安全? - Should private function members be exception safe?

在编写异常安全代码时,所有私有成员函数是否应该至少保证基本的异常安全? 在这种情况下,最佳/最佳做法是什么? 备择方案? 例如,假设我有一个 class Foo和public function 成员DoSomething ,它调用private function 成员DoSomeOfIt 。 D ...

分配器构造和销毁成员函数是否允许从内部逻辑抛出异常? - Are allocator construct and destroy member functions allowed to throw exceptions from internal logic?

我正在编写自己的容器,该容器不需要可移动和可复制的类型。 我认为在异常安全方面我可以稍微简化逻辑。 但是我注意到,分配器的construct和destroy成员函数没有关于何时可以和不能抛出异常的措辞。 我很确定我以前读过这些措辞。 否则,即使我的类型不可移动,当我调整缓冲区大小以增加容量时, c ...

为了在内存不足错误的情况下提供异常安全,让我的代码可读性降低是否值得? - Is it worth making my code less readable for providing exception safety in case of out of memory errors?

我有一个不可复制的Item游戏,因为它们应该是独一无二的: class Creature能够接收Item并将其添加到其inventory : 这种方法看起来不错而且干净,但有一个小问题:如果我的代码的任何部分可以在std::bad_alloc之后恢复并因此捕获recieve_item()的 ...

GCC 在 unordered_map::insert KeyEqual 异常期间内存泄漏 - 打破强异常安全保证? - Memory leak during unordered_map::insert KeyEqual exception with GCC - breaking the strong exception safety guarantee?

我使用的是 GCC 7.3.1,但也在 coliru 上进行了测试,我认为它是 9.2.0 版。 使用以下内容构建: 这是rai.cpp : 运行它会导致: 我没有看到 Visual C++( Microsoft (R) C/C++ Optimizing Compiler Version 19.2 ...

实现std :: vector :: push_back强大的异常安全性 - Implementing std::vector::push_back strong exception safety

我正在根据2018年后的圣地亚哥草案( N4791 )实施我自己的载体,并对实施强大的异常安全性有一些疑问。 这是一些代码: 我看到这个代码有2个问题。 我试图遵循std::move_if_noexcept逻辑,但是如果元素不是移动可构造但是allocator_traits::c ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM