3
BOOST_CHECK_THROW以下不會編譯:編譯器會抱怨構造
class Foo {
public:
Foo(boost::shared_ptr<Bar> arg);
};
// in test-case
boost::shared_ptr<Bar> bar;
BOOST_CHECK_THROW(Foo(bar), std::logic_error); // compiler error here
酒吧的實現並不重要。編譯器抱怨,Foo沒有合適的默認構造函數(VC++ 2005)。如果我添加一個默認的構造函數,它會起作用,並且它實際上被調用。爲什麼這個語句需要一個默認的構造函數?
的確。謝謝。 – 2010-03-03 14:38:44