2014-06-19 146 views
1

由於C++ 11具有可變模板函數,因此可否使用各種函數? 更具體地說,在特定情況下,可變參數函數是否有優勢? 我知道variadic宏可以有它們的用途。可變參數函數呢?是否可以使用可變參數?

+0

他們是否沒有用處以及他們是否被棄用是兩件無關的事情。你在問什麼? – hvd

+1

不,他們不被棄用。變量函數是一個C函數,並且由於C++與C的兼容性,我認爲不能棄用它。 – 101010

回答

10

變量模板在編譯時是可變的;可變參數函數在運行時是可變的。換句話說,一個可變參數模板函數被編譯爲接受,然而許多參數被傳遞給它,而一個常規可變參數函數被編譯爲接受任意數量的參數。

您可以將一個像printf這樣的可變參數函數放入一個庫中,並將其發送給某人使用,無需使用源代碼。你不能用模板函數來做這件事,因爲它的源代碼需要被調用者使用。

相關問題