マクロについて質問です。マクロを介してテンプレート クラスを通常のクラスにキャストするにはどうすればよいですか。例:
#define RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class##class_name))
template<typename T> A {};
if (RUNTIME_CLASS(A));
テンプレートビットが表示されないため、このコードがコンパイルされないことはわかっています。しかし、私は実際のマクロを理解していません。それの戻りは次のようになります(CRuntimeClass*)(&classA)
##
連結するとクラス + A になるのはなぜですか? そして、プリプロセッサはそのような表記をどのように理解しますか?