1
我需要索引到可變參數模板來獲得第N類型,但我無法使用std::tuple
,因爲我不能保證所有類型不會是抽象的。例如,行:獲取第N類型的可變參數模板**當一個或多個類型是一個接口**
using Type = typename std::tuple_element<N, std::tuple<Types...>>::type;
給出編譯錯誤當一個或多個的Types
是抽象的(例如一個界面)。有沒有使用STL索引可變參數模板的不同方法?這不是一個難以解決的問題:
template <size_t Index, typename... Types>
struct get_type;
template <typename Type, typename... Types>
struct get_type<0, Type, Types...>
{
using type = Type;
};
template <size_t Index, typename Type, typename... Types>
struct get_type<Index, Type, Types...>
{
using type = typename get_type<Index - 1, Types...>::type;
};
但我寧可不重新發明輪子,如果標準提供了一種替代方法。
暫時無法在一個新的項目,瑞普在此之後,我調試多一點,並發現了其他項目使用的是舊版本的STL。時間去洞裏哭... :( – Duncan 2014-11-22 09:13:55