Здравствуйте. После перехода на Visual Studio 2013 появились ошибки. У меня есть следующий код:
class Data
{
public:
typedef boost::shared_ptr<Data> s_ptr;
friend s_ptr boost::make_shared<Data>(int const & d); // c2063, c4346, c2998
static s_ptr create(int id) { return boost::make_shared<Data>(id); }
private:
explicit Data(int id): id_(id) {}
};
На объявлении friend-функции вываливается ошибка:
error C2063: 'boost::make_shared' : not a function
warning C4346: 'boost::make_shared' : dependent name is not a type
prefix with 'typename' to indicate a type
error C2998: 'make_shared' : cannot be a template definition
Пробовал заменить на
std::shared_ptr, та же самая ошибка. Подскажите пожалуйста, как исправить. Заранее спасибо!