Lei*_*sen 11 c c++ header-files keyword
我在编写使用为C文件设计的头文件的C++代码时遇到问题.特别是,头文件使用了一个名为class的变量名:
int BPY_class_validate(const char *class_type, PyObject *class, PyObject *base_class, BPY_class_attr_check* class_attrs, PyObject **py_class_attrs);
Run Code Online (Sandbox Code Playgroud)
这适用于C,因为类不作为关键字,但在C++中,类是.那么无论如何我可以将这个头文件#include到c ++文件中,或者我运气不好?
谢谢.
Any*_*orn 10
尝试这样的事情:
#define class class_variable
// if class is only used in declarations, you can also do
// #define class
#include "c.h"
#undef class
Run Code Online (Sandbox Code Playgroud)
它可能会导致问题,但也许值得一试
替代(使用Makefile):
python_.hpp: /usr/include/python.h
perl -pe 's/\Wclass\W//g' $< > $@
...
#include "python_.hpp"
Run Code Online (Sandbox Code Playgroud)
如果这只是声明,则变量名称根本不重要.您可以完全删除它们或按您喜欢的方式更改它们.这是因为声明只定义了函数的名称和类型,即:
int BPY_class_validate(const char *, PyObject *, PyObject *,
BPY_class_attr_check*, PyObject **);
Run Code Online (Sandbox Code Playgroud)
但是如果你想要这些名称(更具描述性),你可以在你拥有的名字的末尾抛出一个下划线:
int BPY_class_validate(const char *class_type, PyObject *class_,
PyObject *base_class, BPY_class_attr_check* class_attrs,
PyObject **py_class_attrs);
Run Code Online (Sandbox Code Playgroud)
这不会破坏任何其他代码.
| 归档时间: |
|
| 查看次数: |
3737 次 |
| 最近记录: |