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