【发布时间】:2011-10-09 01:45:56
【问题描述】:
我最近遇到了try-catch for function 的这种语法。
struct A
{
int a;
A (int i) : a(i) // normal syntax
{
try {}
catch(...) {}
}
A () // something different
try : a(0) {}
catch(...) {}
void foo () // normal function
try {}
catch(...) {}
};
syntax are valid。除了编码风格之外,这些语法之间是否有任何技术差异?其中一种语法在任何方面都优于其他语法吗?
【问题讨论】:
-
它们编译的事实并不意味着它们是有效的。可能是一个扩展。无论如何,+1 非常有趣的语法 - 以前从未见过 :)
-
@VJo:那是标准 C++,不推荐,但标准。
-
关于这个话题有一个有趣的故事:gotw.ca/gotw/066.htm...
-
@Als,我明白了,它在 cmets 中,我没看到...
标签: c++ syntax try-catch function-try-block