私はこのコードを持っています:
class A
{
public:
A(int _a, int _b = 0) : a(_a), b(_b) {}
void f(){}
#if _b == 0
void g(){}
#endif
private:
int a;
int b;
};
int main()
{
A x(1);
x.g();
return 0;
}
bが0の場合にのみAにメソッドg()を持たせたい。上記のコードが機能しないことはわかっているが、これを実現する方法があるかどうかを知りたい。