Sanırım oldukça açıklayıcı - C++ 11 özelliklerini kullanamıyorum. yapmam.hata: 'unique_ptr' bir 'std' üyesi değil
[email protected]:~/Desktop$ g++ main.cpp -o run --std=c++11
main.cpp: In function ‘int main()’:
main.cpp:25:2: error: ‘unique_ptr’ is not a member of ‘std’
main.cpp:25:24: error: expected primary-expression before ‘>’ token
main.cpp:25:49: error: ‘smart_obj’ was not declared in this scope
Not denedim:
İşte[email protected]:~/Desktop$ g++ --version
g++ (Ubuntu/Linaro 4.7.3-2ubuntu1~12.04) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ben kod derleme nasıl:
#include <cstdlib>
#include <iostream>
class Object {
private:
int value;
public:
Object(int val) {
value = val;
}
int get_val() {
return value;
}
void set_val(int val) {
value = val;
}
};
int main() {
Object *obj = new Object(3);
std::unique_ptr<Object> smart_obj(new Object(5));
std::cout << obj->get_val() << std::endl;
return 0;
}
İşte gr ++ benim sürümü: Burada
kod bu-std=c++11
ve
-std=c++0x
numaralı telefonların hiçbiri boş bırakılamaz.
Ubuntu 12.04 LTS bir Intel x64 makinesindeki bir flash sürücüden çalıştırıyorum. // tr:
[Bu referans] (http
c++11
bayrağıyla derlemek gerektiğini bildiği gibiunique_ptr
veshared_ptr
tanımlanır başlığı dahil gerekir .cppreference.com/w/cpp/memory/unique_ptr) dahil etmeniz gereken bir başlık vermenizi ister. – juanchopanza