C 中「typedef」和「using」有什麼不同?
在 C 11 中,「using」關鍵字可以是用來建立類似傳統「typedef」關鍵字的類型別名。雖然這兩種語法都達到了為現有類型分配新名稱的相同結果,但需要考慮它們的語義之間的細微差別。
「using」等於「typedef」嗎?
根據 C 標準 (7.1.3.2),「using」引入了一個具有與定義相同語意的 typedef-name使用「typedef」。這表示「using」不會建立新類型,而是為現有類型提供替代名稱。這些名稱之間的轉換是隱含的。
語意差異
儘管語法和語意相似,但「using」關鍵字與「typedef」在以下方面有所不同:
template<typename T> using MyType = AnotherType<T, MyAllocatorType>;
以上是C 類型別名的「typedef」和「using」關鍵字有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!