如果我有這樣的元組類型:穿越算法嵌套C++ 11元組
std::tuple<int, string, std::tuple<...>, int>
我怎麼能穿越嗎?我已經能夠編寫遍歷一個平面元組的函數,但不能嵌套元組。
這個問題似乎是處理所有可能的類型在嵌套元組模板化的功能或類型的任何實現,必須有這種情況:
template<typename T>
void somefunc(T t)
{
// Do something to t
}
這最終成爲了最好的選擇每種類型的重載解析,並且你不能遞歸地遍歷元組,因爲你失去了它是一個元組的信息。如果你試圖編寫一個試圖確定它是否是一個元組的類或函數,你仍然會遇到與上面相同的問題的「false」情況,因爲它最終會匹配每個類型,而專用元組版本被忽視。
有沒有一種方法我不知道檢查是否是一個元組?
你能在解釋你正在嘗試做的(僞)代碼?這個問題對我來說不是很清楚。 –
正常重載應該很好。有什麼問題? –
您想爲元組中的每個元素運行一次'some_func'?但是如果一個子元素*是一個元組,你想在它的每個元素上運行'some_func'而不是?遞歸地一直下降? –