首頁 >後端開發 >C++ >對於非模板類型,「using」能否完全取代 C 11 中的「typedef」?

對於非模板類型,「using」能否完全取代 C 11 中的「typedef」?

Barbara Streisand
Barbara Streisand原創
2024-12-23 18:57:13278瀏覽

Can `using` Completely Replace `typedef` in C  11 for Non-Template Types?

C 11 中的 'using' 可以取代 'typedef' 嗎?

在C 11 中,'using' 現在可以定義類似於'typedefs' 的類型別名:

typedef int MyInt; // Equivalent to:
using MyInt = int;

雖然「使用」最初是為了支持模板而引入的typedefs:

template< class T > using MyType = AnotherType< T, MyAllocatorType >;

這提出了一個問題:在處理非範本類型時,'typedef' 和'using'之間是否存在細微差別。

別名行為和意義

「typedef」和「using」都會為現有的建立別名或新名稱類型,而不是定義一個新類型。這意味著別名和原始類型之間的轉換是隱式的。

因此,「typedef」和「using」在別名行為方面沒有區別。兩種建構都會建立引用相同基礎類型的弱別名。

以上是對於非模板類型,「using」能否完全取代 C 11 中的「typedef」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn