我如何转发声明一个已经被typedef的类?

Goz*_*Goz 2 c++ typedef forward-declaration

我有一个字符串类,毫不奇怪,它使用不同的实现,具体取决于是否启用了UNICODE.

#ifdef UNICODE
typedef StringUTF16 StringT;
#else
typedef StringUTF8 StringT;
#endif
Run Code Online (Sandbox Code Playgroud)

这很好用但我目前有一个问题,我需要转发声明StringT typedef.我怎样才能做到这一点?

我不能这样做typedef StringT;,这使得前瞻性声明变得棘手.是否可以执行此typedef类型的前向声明,而不必将上面的代码放到头文件的顶部?

Ric*_*olf 8

按照iosfwd标准头设置的示例进行操作.编写包含此文件的头文件,并将其命名为StringTFwd.h

class StringUTF16;
class StringUTF8;

#ifdef UNICODE
typedef StringUTF16 StringT;
#else
typedef StringUTF8 StringT;
#endif
Run Code Online (Sandbox Code Playgroud)

至少这是可重用的,并不会丑化引用它的标头.