3
我想傳遞多個參數以便在函數內部構造兩個對象,與std::pair<T1, T2>(std::piecewise_construct, ...)
工作方式相同。std :: forward_as_tuple將參數傳遞給2個構造函數
所以我寫了
template <typename Args0..., typename Args1...>
void f(std::tuple<Arg0> args0, std::tuple<Args1> args1) {
Object0 alpha(...);
Object1 beta(...);
...
}
所以我可以調用
f(std::forward_as_tuple(..., ..., ...), std::forward_as_tuple(..., ...))
但我不知道如何構建Object0
和Object1
。我檢查了我的標準庫的源代碼std::pair
,它們似乎使用複雜的內部函數來獲取args0和args1的索引。你有什麼想法如何做到這一點?
感謝。不幸的是,我需要與RHEL 7提供的gcc 4.8.5兼容。所以我猜,我需要在C++ 11中實現make_index_sequence,這正是我在std :: pair的標準庫中找到的。 – InsideLoop
@InsideLoop酷,我添加了一個在C++ 11工作的現場演示。 – TartanLlama
很酷。它適用於gcc 4.8.5 :-) – InsideLoop