[英]How do i forward declare a class that has been typedef'd?
我有一個字符串類,毫不奇怪,它使用不同的實現,具體取決於是否啟用了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
至少這是可重用的,並不會丑化引用它的標頭。
你不能。 (Rational:您可以使用typedef為基本類型定義別名,並且可以根據精確類型使用不同的ABI約定)。
你不能轉發聲明StringUTF16和StringUTF8,然后使用你的#idef
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.