1
如何組合來自C++中兩個參數包的值? 換句話說,如何寫功能C++結合來自兩個(或更多)參數包的值
LetsStart<int, -1, 10, 3>("This is -1", "And this is 10", "3!!!");
這將輸出
-1 This is -1
10 And this is 10
3 3!!!
也就是說,它應該選擇來自兩個包裝中,第一包裝和從第二組第一值,則第二值第一值,則來自包裝等3個值...
在第一個我嘗試我想是這樣的
template<class T, T... Firsts, class TSecond>
void LetsStart(TSecond... Seconds) {
Output((Firsts, Seconds)...);
}
但這不起作用...
//當然我wrote this function,但我相信存在更正確和簡單的方法來完成此任務。那麼,你能指出我的方式嗎?
的想法是存儲在元組的每個包(或其他類),然後通過索引遍歷這兩個元組'N:
可以用下面的例子中
main
測試兩種功能從'0'到'sizeof ...(Firsts)'。我會開始回答這個問題,如果我不認爲最終的課程有點無用......你對此有什麼想法? – davidhigh 2014-09-27 20:55:07我不太瞭解這個要求,但爲什麼你不能只使用地圖? – 2014-09-27 21:00:04
你在正確的軌道上;在這種情況下你不能擴展參數包。允許擴展的一種上下文是braced-init-list:http://coliru.stacked-crooked.com/a/0c4980989603a770 – dyp 2014-09-27 21:01:29