我正在处理一个框架,框架大量修改了其类和函数名称,我创建了一个过渡头文件,使旧的名称仍然可用:
我在处理一个框架,该框架对其所有类和函数进行了大量重命名。我创建了一个过渡头文件,使得旧的名称仍然可用。
#define OldClassA NewClassA
#define OldClassB NewClassB
...
现在我希望编译器在使用旧名称时向用户发出警告。我该如何做?
int main(){
NewClassA newA;
OldClassA oldA; // <-- This one would emit a warning
}
__attribute__((deprecated)) class OldClass: public NewClass {};
(将旧类声明为已过时,在新类的基础上继承旧类) - user529758#define
来提供别名,这是不安全的。应该使用typedef
代替。 - syam#define
而搞乱了与你无关的代码部分,他们会追杀你,并在抓到你时对你进行身体上的伤害。这绝对是不安全的,对你的用户代码和你自己的健康都有影响... ;) - syam#undef OldClassA
和#define OldClassA MaliciousClassA
。而typedef
和using
只能执行一次,无法撤销。 - Pharap