這是cppreference的示例。我不明白模式如何擴展。省略號出現在模板函數的參數聲明中
template<typename ...Ts, int... N> void g(Ts (&...arr)[N]) {}
int n[1];
g<const char, int>("a", n); // Ts (&...arr)[N] expands to
// const char (&)[2], int(&)[1]
Note: In the pattern Ts (&...arr)[N], the ellipsis is the innermost element, not the last element as in all other pack expansions.
問題1:什麼是ARR?
問題2:n是一個int數組,它是否與int ... N匹配?
問題3:爲什麼它可以擴展爲const char(&)[2],INT(&)[1]
查看有關包擴展的任何問題,例如[this one](https://stackoverflow.com/a/26767333/2069064) – Barry
要解決問題2:'Ts'是數組類型的類型包,而'N'是數組維數的一個int數據包,所以'n'將'int'類型提供到'Ts'包中,並將維度1提供到'N'包中。 – cdhowie
使用可變參數模板引用C數組的醜陋語法('int(&a)[42]')。 – Jarod42