C++变量在函数体中声明,但不是类成员?

ano*_*non 6 c++ variables declaration

我想创建一个具有以下类型的C++类:

  1. 它可以在函数内声明.
  2. 它可以在成员函数内声明.
  3. 它不能声明为类成员.

使用此:想想GC的"Root"对象.

这在C++中是否可行?特别是,我正在使用g ++.愿意切换到铿锵声.模板或宏解决方案都很好.

谢谢!

Dea*_*ing 16

你可以用宏来做,也许:

#define MY_TYPE \
    do { } while(0); \
    RealType

void foo() {
    MY_TYPE myvar;
    myvar.Whatever();
}
Run Code Online (Sandbox Code Playgroud)

这只会在函数内编译(因为"do ... while"位 - 虽然你会得到一个非常奇怪的错误信息).它似乎是你想要避免的宏的"邪恶"用途之一,但是......

  • 很有创意.:) (5认同)
  • 你可以随时做`MY_TYPE const myvar`;) (4认同)