只是一個簡單的問題。有功能嘗試塊,但不在構造函數
void f(Foo x) try
{
...
}
catch(exception& e)
{
...
}
和
void f(Foo x)
{
try { ... }
catch (exception& e)
{
...
}
}
之間有什麼區別?
如果否,爲什麼函數嘗試塊(用於構造函數的初始化列表的情況被放在一邊)?如果x
傳遞給f
時Foo
的複製構造函數拋出異常,會發生什麼情況?
這意味着功能嘗試對非構造函數塊只是一個替代語法,沒有語義的目的,這可能確實是他們存在的爭論性論據。另一方面,在C++中有太多莫名其妙的東西,即使在與兼容性無關的東西中也是如此。 – 2010-10-08 11:09:21