1

我对这段代码有疑问:

// Make it Non Copyable 


FileLogger (const FileLogger &) = delete;
FileLogger &operator= (const FileLogger &) = delete;

我需要解决这个错误:

Error   1   error C2059: syntax error : ';' 
Error   2   error C2238: unexpected token(s) preceding ';'  

此错误在上面发布的同一代码行中以相同的语法发生了 16 次。

4

2 回答 2

8

我假设您正在尝试使用新的 C++11= delete语法来禁止默认实现。我认为这个错误意味着这个编译器只是不理解那个语法。

在 C++11 之前的编译器中,典型的方法是使用最终将构造函数/赋值声明为私有的DISALLOW_COPY_AND_ASSIGN宏。

于 2013-10-24T23:40:50.627 回答
0

在 C++11 之前的版本中,delete是一个保留字。这意味着它对编译器具有特殊意义,不能用于其他任何事情。如果这是您的变量之一的名称,请重命名它,您应该没问题。

于 2013-10-24T23:38:53.747 回答