使用新标准c ++ 11禁止复制构造函数

时间:2013-05-23 06:51:48

标签: c++ c++11 g++ copy-constructor

嘿伙计们我试图用复制构造函数禁止创建一个简单的类。

#include <cstdlib>

// 
class my_stack
{
std::size_t last;
int *data;
std::size_t max_elem;

public :

int top(void) const;
void pop(void);
void push(int);
int size(void) const;
bool empty(void) const;

my_stack();
my_stack(int);
~my_stack();

private:
my_stack(const my_stack&) = delete;
void operator=(const my_stack&) = delete;
};

但是当我编译它时出现了警告

 defaulted and deleted functions only available with -std=c++0x or -std=gnu++0x [enabled by default]

我使用g ++编译器。如何避免此警告,可能是我应该使用一些编译器参数。

1 个答案:

答案 0 :(得分:0)

我修好了。

问题是我用过

g++ *.cpp -c -std=c++0x

代替

g++ -std=c++0x *.cpp -c