首頁 > 後端開發 > C++ > 主體

為什麼在 C 中使用預設模板參數時仍然需要指定模板參數?

Patricia Arquette
發布: 2024-11-04 17:21:01
原創
243 人瀏覽過

Why Do I Still Need to Specify Template Arguments When Using Default Template Arguments in C  ?

理解C 中預設模板參數的使用

問題:

儘管能夠定義如下類模板預設參數,如以下類別模板參數所示:

<code class="cpp">template <typename T = int>
class Foo {
};</code>
登入後複製

為什麼有必要在下面的例子中實例化類別時指定模板參數?

<code class="cpp">Foo<int> me;</code>
登入後複製

答案:

與問題所暗示的相反,沒有必要明確指定使用預設範本參數定義類別範本時的範本參數。從C 17 開始,以下程式碼有效:

<code class="cpp">Foo me;</code>
登入後複製

但是,在C 17 之前,需要以下語法:

<code class="cpp">Foo<> me;</code>
登入後複製

這意味著模板參數必須是即使它們是空的也存在。此行為類似於使用單一預設參數呼叫函數,其中 foo() 和不帶參數的 foo 都是有效表達式,但只有前者會呼叫該函數。

透過引入預設模板參數,C 11透過提供一種為模板參數設定預設值的方法,可以更輕鬆地使用類別模板。此外,正如 C 11 和 C 17 之間的行為變化所證明的那樣,這種語法隨著時間的推移而不斷發展以提高可用性。

以上是為什麼在 C 中使用預設模板參數時仍然需要指定模板參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!