Я использовал std :: unique_ptr в своих предыдущих кодах в предварительном просмотре Visual Studio 2013, и у меня там нет проблем. Для моего недавнего случая проекта, это ошибка компилятора менее при отладке в визуальной студии 2012. Так что теперь я только получил следующие ошибкиОшибка компилятора unique_ptr из-за импорта кодов из VS2013 для предварительного просмотра VS2012
Это линия, которая, имеющий вопрос:
std::unique_ptr<MyClass> classHolder;
Ниже то, что компилятор говорит
'unique_ptr': не является членом 'Std'
синтаксическая ошибка: отсутствует ';' до '<'
отсутствующий тип спецификатор - предполагаемый int. Примечание: C++ не поддерживает
default-intнеожиданный токен (ы), предшествующий ';'
Любая мысль о том, как я могу решить эту проблему?
Пример:
#include <memory>
#include <string>
#include <sstream>
#include <boost/weak_ptr.hpp>
#include "JSAPIAuto.h"
#include "MyClass.h"
#ifndef H_CLASSHAVINGPROB
#define H_CLASSHAVINGPROB
class ClassHavingProb : public FB::JSAPIAuto //ClassHavingProb: this is the wrapper class if you are familiar with FireBreath(C++ to Javascript)
{
public:
ClassHavingProb()
{
obj = std::unique_ptr<MyClass>(new MyClass(1));
//MyClass: this is the class reponsible for the functionalities, I've used unique_ptr so that class lifecycle will not be very problematic. If I used a regular pointer the class is not properly dismissed.
//Some more init codes here
}
~ClassHavingProb() {
obj.release(); //the class must be dismissed
}
private:
std::unique_ptr<MyClass> obj;
};
#endif // H_CLASSHAVINGPROB
вы #include? –
billz
yep, память включена в файл заголовка – Marl
Представьте полный пример, демонстрирующий проблему. –