C++ 如何忽略头文件中定义的方法
C++ How to ignore defined method in header file?
我希望编译器(MinGW g++/Linux g++)忽略头文件中一些定义的内容:
class A {
public:
A();
virtual ~A();
IGNORE void methodA(); // = 0 -> not possible
IGNORE void methodB(); // = 0 -> not possible
}
问题:methodA() 和 methodB() 不能是纯虚拟的,因为该类稍后会被实例化,因此它会给出编译器错误。这样做的原因:我想要一个可读的头文件,所以这个方法应该出现在文件中 - 这些方法只在 QT 框架中用作"信号",它们被翻译成带有宏的字符串。是否可以声明一个宏以将其作为注释?我在 QT5 框架(声明的信号方法)中看到了这一点,但它不适用于我的代码......我不想做的是:仅将方法列为DOC注释。
感谢您知道如何解决该;)
void methodA(int) = delete; // note: requires C++11
void methodA(double);
如果您尝试使用 methodA(int)
将导致编译器错误,但如果您尝试使用 methodA(double)
则不会导致 。
找到了一种方法来忽略方法,如我所描述的那样我想做什么:
#define IGNORE __attribute__((unused))
#define METHOD_TO_STRING(a) ""#a
所以我可以写头文件
class A {
public:
IGNORE void methodA();
void doStuff(const char *stuff);
void methodB() {
doStuff(METHOD_TO_STRING(methodA());
}
};
现在编译器很高兴,我可以将方法作为参数传递:)感谢您的提示
相关文章:
- 在父类中为多个子类定义方法
- 在.cpp文件中定义方法而不是在 C++ 的 .h 文件中定义方法时,如何提高代码的性能?
- 对已定义方法的未定义引用
- 需要派生的类来定义方法
- 在某些名称空间中定义方法时,在全局名称空间中声明
- 在类 C++ 中重定义方法
- 这两种定义方法的样式之间是否存在差异
- 对已定义方法的未定义引用、标头中的声明和源匹配
- 如果未在类 c++ 中定义方法,如何在类对象上使用方法
- 在为嵌入式类定义方法时,有没有办法避免重复包含类
- 有关C++中一个或多个乘法定义方法的错误
- 在 cpp 文件中定义方法时未解析外部,但在标头中定义时未解析
- 是否允许所有未使用的未定义方法
- 如何在声明之外为专门用于无参数的可变模板类定义C++方法
- 什么是编程语言为派生类重新定义方法的能力
- 在C++中,在类定义内部或外部定义方法体是否更为传统
- 向std::vector或typdef添加自定义方法
- 如果在头文件中定义方法,内联关键字有什么用?
- C++ 我知道数组长度,但想知道是否是一种更简洁的数组元素定义方法
- 在类作用域内定义方法时,除非在原始 cpp 文件中的其他位置调用方法,否则项目不会编译