我如何转发声明已类型定义的类?
-
22-07-2019 - |
题
我有一个字符串类,毫不奇怪,它根据是否启用 UNICODE 使用不同的实现。
#ifdef UNICODE
typedef StringUTF16 StringT;
#else
typedef StringUTF8 StringT;
#endif
这很好用,但我目前遇到一个问题,我需要转发声明 StringT typedef。我怎样才能做到这一点?
我做不到 typedef StringT;
所以这使得前向声明变得棘手。是否可以对这个 typedef 类型进行前向声明,而不必将上面的代码粘贴到头文件的顶部?
解决方案
按照例如通过iosfwd标准标头集合。收件包含此头文件,并调用它StringTFwd.h
class StringUTF16;
class StringUTF8;
#ifdef UNICODE
typedef StringUTF16 StringT;
#else
typedef StringUTF8 StringT;
#endif
至少这是可重复使用的,并且不难看高达引用它的标头。
其他提示
你不能。(合理的:您可以使用 typedef 为基本类型定义别名,并且这些别名可能会根据精确类型使用不同的 ABI 约定)。
你不能转发声明 StringUTF16 和 StringUTF8 然后使用你的 #idef
?
不隶属于 StackOverflow