关于以下方面,在Linux/gcc上的C++中使用longjmp和setjmp是否安全?

  • 异常处理(我没有使用longjmp/setjmp来实现异常处理。我想知道longjmp/setjmp对标准异常处理有什么副作用)
  • *this指针
  • 表示
  • 智能指针(增强的共享和侵入式指针)
  • 您还能想到的其他任何东西。
  • 最佳答案

    setjmp() / longjmp() 完全破坏了堆栈展开,因此异常处理和RAII(通常为析构函数)一样。

    从标准的18.7/4“其他运行时支持”开始:



    因此,最重要的是setjmp()/longjmp()在C++中不能很好地发挥作用。

    关于c++ - C++:可以安全使用longjmp和setjmp吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1376085/

    10-08 20:40