Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <utility>
- #include <iostream>
- template <size_t I>
- size_t foo() { return I; }
- template <class T, size_t... I>
- T switch_(size_t i, std::index_sequence<I...>)
- {
- T ret;
- const bool ar[] = {
- ((i == I) ? (ret = foo<I>()):false, false)... };
- return ret;
- }
- template <class T, size_t Max>
- T do_switch(size_t i)
- {
- return switch_<T>(i, std::make_index_sequence<Max>());
- }
- int main(int argc, char** argv)
- {
- size_t ret = do_switch<size_t, 10>(argc);
- std::cout << ret << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement