#include <random>
#include <iostream>
#include <tuple>
using namespace std; // 余計なコード消したらギリギリ入ったw
template<class First>auto sum(First first){return first;}
template<class First, class... Rest> auto sum(First first, Rest... rest){return first+sum(rest...);}
template<typename T, size_t... Seq>
auto sum_tpl_impl(const T& tpl, index_sequence<Seq...>) {return sum(get<Seq>(tpl)...);}
template<typename... Types> auto sum_tpl(const tuple<Types...>& tpl) {
return sum_tpl_impl(tpl, make_index_sequence<tuple_size<tuple<Types...>>{}>{});
}
template <typename T, typename F, T... Seq> auto gen_impl(F func, index_sequence<Seq...>) {
return make_tuple(func(Seq)...);
}
template <size_t N, typename F> auto gen(F func) {
return gen_impl<decltype((func)(0))>(func, make_index_sequence<N>{});
}
template <typename T, size_t... Seq> void print_impl(const T& tpl, index_sequence<Seq...>) {
for (auto e: {get<Seq>(tpl)...}) cout << e << endl;
}
template <typename T> void print(const T& tpl) {
print_impl(tpl, make_index_sequence<tuple_size<T>{}>{});
}
int main() {
random_device seed_gen;
mt19937 engine(seed_gen());
const size_t n = 3;
const auto tpl = gen<n>([&](size_t i){ return engine();});
print(tpl);
cout << sum_tpl(tpl) << endl;
return 0;
}
C++相談室 part159
■ このスレッドは過去ログ倉庫に格納されています
450デフォルトの名無しさん
2022/03/11(金) 23:14:03.97ID:GmBPyzdt■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★5 [Ailuropoda melanoleuca★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 ★2 [首都圏の虎★]
- 《独裁に党内から異論噴出!》高市首相 暴かれた本性 〈木下秘書の陰謀論「文春は中国から毎週1000万円もらっている」〉 | 週刊文春 [少考さん★]
- 「名古屋ほど適した場所ない」 広沢市長、副首都法案提出めぐり [首都圏の虎★]
- AKB48から契約解除の花田藍衣 丸刈りめぐり運営側を非難、対抗する姿勢「何年かかってでも戦っていきます」 [ひかり★]
- 仏でエボラ熱感染初確認 [首都圏の虎★]
- 【実況】博衣こよりのえちえちこども裁判クイズ🧪★3
- 【実況】博衣こよりのえちえちこども裁判クイズ🧪★2
- 安倍政権の肝いりで誕生した「クールジャパン機構」、累積損失が540億円に。政府は廃止や統合を検討 [663766621]
- チンポーン
- 【大爆笑】高市、アメリカにインターンで行ってただけだった。連邦議会立法調査官とは一体… [744361492]
- 伊佐「どの会社のトップも交渉相手に『忙しいから』とか『寝てない』とか絶対言わない」 ウヨ「なんでダメなん?(略」 [358195575]