我应该使用__throw_logic_error吗?

Fir*_*his 5 c++ exception

我偶然发现了一段使用函数std::__throw_logic_error抛出异常的代码.声明此函数functexcept.h并且显然与此函数相同throw logic_error(...).有区别吗?功能是什么?什么时候,如果有的话,我应该更喜欢它吗?

谢谢.

Cat*_*lus 8

不,不要使用它(除非你真的知道你在做什么).它是实现的内部(因为所有__名称都是).

  • 它是不可移植的,它可能会在任何新版本的编译器中消失. (2认同)

Mat*_*lia 6

一般来说,你不应该使用它.

名称开头的两个下划线表示它是一个特定于编译器的添加,可能它甚至不是用于"公共"使用,而是作为标准库内部的帮助(我怀疑它是在那里支持例如使用库而没有例外,但我只是在猜测).

只是用throw.