2010-05-05 55 views

回答

7

Variadic Templates (Revision 3) (N2080=06-0150),第6頁:

雖然不是絕對必要的(我們可以實現count沒有這個功能),檢查參數包的長度是一種常見的操作,值得一個簡單的語法。此外,當可變參數模板與概念組合時,這種操作對於類型檢查原因可能是必需的;參見第3.3節。

(第3.3節有關的概念現在是無關緊要的談話。)

+1

的sizeof''...也可以應用同樣很好地模板和功能參數組。所以'sizeof ...(T)'和'sizeof ...(t)'工作得很好。我相信基於庫的解決方案可以與模板或函數參數包一起工作,但不適用於兩者。因爲一個擴展產生一系列類型,而另一個擴展產生一系列表達式。也許把它寫成'template struct count;',然後將包傳遞爲'count '可以工作。由於'sizeof'可以處理似乎可以工作的類型和表達式,但它顯然更醜陋:) – 2010-05-09 14:37:09

4

sizeof...只是糖,我想。

sizeof的確核心,以語言爲...,雖然一個​​功能可能存在,我們已經有sizeof...保留,所以我們還不如讓可以方便地獲取計數的方式。

相反,如果sizeof...沒有保留,添加這樣的東西的想法可能會失敗,因爲新的關鍵詞往往會被忽視。 (越少越好。)