簡體   English   中英

我如何轉發聲明一個已經被typedef的類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM