所以,我做了一個簡單的元組類使用可變模板...如何從一個可變元組中獲取元素?
我將如何去做一個工作get方法/幫助函數?我正在使用的當前版本會導致編譯器期望在空元組中定義一個get。
下面的代碼:
template<typename... T>
class tuple;
template< >
class tuple< > { };
template<typename U, typename... T>
class tuple<U, T...>
{
public:
tuple() {};
tuple (U f, T... r);
U get (int idx, int numCalls = 0) const;
U first_;
tuple<T...> rest_;
};
template<typename U, typename... T>
tuple<U, T...>::tuple (U f, T... r)
{
first_ = f;
rest_ = tuple<T...> (r...);
}
template<typename U, typename... T>
U tuple<U, T...>::get (int idx, int numCalls) const
{
if (idx == numCalls)
return first_;
return rest_.get (idx, numCalls + 1);
}
感謝您的幫助!
如果這不是作業:你是否從''簽出'std :: tuple'? –
只有所有類型都是相同的,你的'get'函數纔會起作用,這不是元組背後的意圖。 – Xeo