Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct context {
- int number;
- };
- using s_fun = void(*)(context&);
- constexpr switch_map<s_fun, 2> s_swtich = {
- { "a" , +[](context& ctx) -> void {
- ctx.number += 1;
- } },
- { "b" , +[](context& ctx) -> void {
- ctx.number += 2;
- } }
- };
- template<typename T>
- void do_switch(T str, context& ctx) {
- auto val = s_swtich.take(std::forward<T>(str));
- if (val.has_value()) {
- val.value()(ctx);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement