-6

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

#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++ 编译器。我怎样才能避免这个警告,可能我应该使用一些编译器参数。

4

1 回答 1

0

我修好了它。

问题是我用过

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

反而

g++ -std=c++0x *.cpp -c 
于 2013-05-23T07:38:50.503 回答