Ниже не компилируется:Компилятор жалуется 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
Реализация Bar не имеет значения. Компилятор жалуется, что Foo не имеет соответствующего конструктора по умолчанию (VC++ 2005). Если я добавлю конструктор по умолчанию, он работает, и он фактически вызван. Почему этот оператор требует конструктора по умолчанию?
Действительно. Благодарю. –