为什么此C ++函数定义不需要大括号?

时间:2019-07-02 15:31:28

标签: c++ function syntax

我在读Stroustrup的“编程-使用C ++的原理和实践”时发现,他包含了一个没有大括号的函数,却没有说明自己,网上人说这是不可能的。

我已经编译了代码,并且可以正常工作。

void f()
    try {} 
    catch(...) {}

我希望从中得到一个编译器错误,但我没有,它可以正常工作。我正在使用C ++ 17。

1 个答案:

答案 0 :(得分:6)

  

不需要大括号吗?

有花括号:

void f() try {} catch(...) {}
             ^^

这是Function-try-block

  

function-try-block将catch子句序列与整个函数主体相关联