edd*_*kuo 3 c++ language-lawyer c++17
Clang 和 GCC 在这个问题上有不同的意见:
使用 g++ 打印“result2”,但使用 clang++ 打印“result1”。
我知道g++认为A抛出的g(),不一样的A是main.cpp。
但是,clang++ 有什么问题吗?
版本:
g++:7.4.0
叮当:10.0.0
主.cpp:
#include <iostream>
namespace {
struct A {};
}
extern void g();
int main()
{
try {
try {
g();
} catch (A) {std::cout << "result1\n";}
} catch (...) {std::cout << "result2\n";}
}
Run Code Online (Sandbox Code Playgroud)
其他.cpp:
namespace {
struct A {};
}
void g() { throw A(); }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |