c++ - 忽略 g++ 编译错误以获得向后兼容性的额外资格

标签 c++ linux compilation g++

我正在尝试将项目移植到具有较新 g++ 版本的新 Linux 系统中。编译时我得到以下信息:

error: extra qualification 'Customer::' on member 'getCustomer'

在类定义中,我在 getCustomer() 前加上 Customer::前缀。

如果我删除 Customer:: 我的代码可以工作,但是代码有很多以类名和范围运算符为前缀的条目。有没有一种方法(例如编译器指令)可以帮助消除此错误?

来 self 的 shell gcc 版本 4.4.2 20091027 (Red Hat 4.4.2-7) (GCC)

最佳答案

Inside a class definition, I am prefixing getCustomer() with Customer::.

我假设你的意思是:

class Customer {
    Customer *Customer::getCustomer() { ... }
};

不要。没有必要,因为你已经在类定义中了,而且我认为 C++ 标准甚至不允许这样做(我很惊讶旧的 G++ 这样做了?)。

似乎没有 -std 标志(在 GCC 4.4.5 中)允许这样做。

关于c++ - 忽略 g++ 编译错误以获得向后兼容性的额外资格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9603813/

相关文章:

C++模板模板(双模板?)

c++ - 使按位函数适用于任何类型的整数输入 C++ 的最佳方法是什么?

c - 实现共享库/模块 - 参数结构不在 header 中

javac编译并执行2个java文件

C++ COM+ 方法参数推导

c++ - std::thread 从模板函数调用模板函数

linux - 在 Solaris 和 Linux 上确定进程位数的最简单方法

c++ - gcc 创建 mime 类型 application/x-sharedlib 而不是 application/x-application

c++ - 编译 sfml c++ (ubuntu)

javascript - Visual Studio - javascript 文件生成几乎卡住 PC - 如何禁用