C++ 在定义为从不引发异常的函数中,未定义的行为是否会导致异常?

C++ 在定义为从不引发异常的函数中,未定义的行为是否会导致异常?,c++,exception,undefined-behavior,C++,Exception,Undefined Behavior,我看着它,上面写着: 异常安全 无抛出保证:此函数从不抛出异常 但它补充道: 请注意,无效的ptr值会导致未定义的行为 我怀疑UB可能包括抛出异常,并且保证只适用于有效指针,但我只是想检查一下。未定义的行为意味着语言定义没有告诉您代码的功能。所以,是的,任何事情都可能发生,包括吹过noexcept说明符。毕竟,没有规则。。。(好吧,编译器可能会提供规则,但依赖这些规则是不可移植的)。未定义的行为意味着语言定义不会告诉您代码的功能。所以,是的,任何事情都可能发生,包括吹过noexcept说明符。毕

我看着它,上面写着:

异常安全
无抛出保证:此函数从不抛出异常

但它补充道:

请注意,无效的ptr值会导致未定义的行为


我怀疑UB可能包括抛出异常,并且保证只适用于有效指针,但我只是想检查一下。

未定义的行为意味着语言定义没有告诉您代码的功能。所以,是的,任何事情都可能发生,包括吹过
noexcept
说明符。毕竟,没有规则。。。(好吧,编译器可能会提供规则,但依赖这些规则是不可移植的)。

未定义的行为意味着语言定义不会告诉您代码的功能。所以,是的,任何事情都可能发生,包括吹过
noexcept
说明符。毕竟,没有规则。。。(好吧,您的编译器可能会提供规则,但依赖这些规则是不可移植的)。

您想让我们定义未定义的行为吗?!是的,所有赌注都与未定义的行为有关。未定义的行为可以做任何事情。它可以引发异常,但禁用异常捕获机制。当发生未定义的行为时,您不能做出任何假设,因为它可能损坏了运行时数据的任何部分。您想让我们定义未定义的行为吗?!是的,所有赌注都与未定义的行为有关。未定义的行为可以做任何事情。它可以引发异常,但禁用异常捕获机制。当发生未定义的行为时,您不能做出任何假设,因为它可能会损坏运行时数据的任何部分。