繁体   English   中英

为什么GCC可以编译std :: exception(“ some error msg”)而没有错误?

[英]Why GCC can compile std::exception(“some error msg”) without error?

我发现以下代码引发了带有参数消息的异常,但是GCC可以成功编译它而没有任何错误。

当我使用clang进行编译时,结果是失败。 我想调试GCC编译过程以找到与GCC选项-Q的区别,但似乎不起作用。 我希望有人能给我一些建议,或者告诉我为什么GCC可以成功地编译它。

T* lpItem = new T;
if (NULL == lpItem)
{
    throw std::exception("New CachePool Item Fail");
}

GCC正在利用[member.functions]添加类似

std::exception::exception(const char *);

lang不是

对于C ++标准库中描述的非虚拟成员函数,实现可以声明一组不同的成员函数签名,只要对该成员函数的任何调用将从本文档中所述的声明集中选择重载,则其行为与如果选择了该过载。 [ 注意:例如,一个实现可以添加具有默认值的参数,或者用具有相同行为的两个或多个成员函数将成员函数替换为具有默认参数的成员函数,或者为成员函数名称添加其他签名 尾注 ]

重点已添加

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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