错误 C2059:VS10 中“= 删除”上的语法错误 C++ 代码

error C2059: syntax error c++ code on `= delete` in vs10

本文关键字:错误 语法 代码 C++ C2059 VS10 删除      更新时间:2023-10-16

我对这段代码有问题:

// 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 次。

我假设您正在尝试使用新的 C++11 = delete语法来抑制默认实现。我认为此错误意味着该编译器不理解该语法。

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

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