Advertisement
Guest User

Untitled

a guest
May 18th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.41 KB | None | 0 0
  1. struct context {
  2.     int number;
  3. };
  4.  
  5. using s_fun = void(*)(context&);
  6.  
  7. constexpr switch_map<s_fun, 2> s_swtich = {
  8.     { "a" , +[](context& ctx) -> void {
  9.         ctx.number += 1;
  10.     } },
  11.     { "b" , +[](context& ctx) -> void {
  12.         ctx.number += 2;
  13.     } }
  14. };
  15.  
  16. template<typename T>
  17. void do_switch(T str, context& ctx) {
  18.     auto val = s_swtich.take(std::forward<T>(str));
  19.     if (val.has_value()) {
  20.         val.value()(ctx);
  21.     }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement