2
我正在學習新的C++ 17倍表達式,我從c++17 fold expression中看到了這段代碼。我想知道爲什麼此代碼的工作:C++在cout中17倍表達式
template<typename ...Args>
void printer(Args&&... args) {
(std::cout << ... << args) << '\n';
}
,但不是這一個:
template<typename ...Args>
void printer(Args&&... args) {
(std::cout << args << ...) << '\n';
}
這可能顯得過於邏輯和將扭轉在我看來,打印順序。
'std :: cout << ... << args'匹配(4)'init op ... op pack'。 'std :: cout << args << ...'不匹配任何有效的表單。 – Michael
爲什麼人們選擇不創建這種形式?那麼我們如何才能以相反的方式獲得參數呢? –
「*那我們怎麼才能以相反的方式得到參數呢?*」你必須寫一些反轉工具,這很難寫。正常的包裝展開無法以相反的順序展開包裝。 –