毫无疑问,我有一个字符串类,它根据是否启用UNICODE使用不同的实现。
#ifdef UNICODE
typedef StringUTF16 StringT;
#else
typedef StringUTF8 StringT;
#endif
这很好用,但是我目前有一个问题,我需要向前声明StringT typedef。我怎样才能做到这一点?
我无法执行
typedef StringT;
,因此它使前向声明变得棘手。是否可以进行这种类型定义类型的前向声明,而不必将上面的代码粘贴到头文件的顶部? 最佳答案
遵循iosfwd标准 header 设置的示例。编写一个包含该文件的头文件,并将其命名为StringTFwd.h
class StringUTF16;
class StringUTF8;
#ifdef UNICODE
typedef StringUTF16 StringT;
#else
typedef StringUTF8 StringT;
#endif
至少这是可重用的,并且不会丑陋引用它的 header 。