3
當我讀取Variadic templates in C++後,我無法在元組實現中獲得一行。元組如何<Ts...>&base = t;在元組實現中工作
template <size_t k, class... Ts>
typename std::enable_if<
k == 0, typename elem_type_holder<0, tuple<Ts...>>::type&>::type
get(tuple<Ts...>& t) {
return t.tail;
}
template <size_t k, class T, class... Ts>
typename std::enable_if<
k != 0, typename elem_type_holder<k, tuple<T, Ts...>>::type&>::type
get(tuple<T, Ts...>& t) {
tuple<Ts...>& base = t;
return get<k - 1>(base);
}
tuple<Ts...>& base = t;
是什麼意思?我認爲t的類型是tuple<T, Ts...>&
,它不能轉換爲tuple<Ts...>&
。
從變量的名稱來看,它是從派生到基礎的轉換。 – chris
看起來像這個實現有元組工作的東西像'元組:元組 {尾巴; };' –