@CPPJunior

Как правильно объявить friend функцию в классе?

Здравствуйте. После перехода на 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, та же самая ошибка. Подскажите пожалуйста, как исправить. Заранее спасибо!
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ответы на вопрос 1
maaGames
@maaGames
Погроммирую программы
include не хватает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы