我偶然发现了一段使用函数std::__throw_logic_error
抛出异常的代码。此函数在functexcept.h
中声明,显然与throw logic_error(...)
相同。有区别吗?功能是什么?什么时候,如果有的话,我应该更喜欢它吗?
谢谢。
答案 0 :(得分:8)
不,不要使用它(除非你真的知道你在做什么)。它是实现的内部(因为所有__名称都是)。
答案 1 :(得分:6)
一般情况下,你不应该使用它。
名称开头的两个下划线表示它是一个特定于编译器的添加,可能它甚至不是用于“公共”使用,而是作为标准库内部的帮助(我怀疑它是支持例如使用库而没有例外,但我只是猜测)。
只需使用throw
即可。