| 69 | |
| 70 | template<class T> |
| 71 | decltype(auto) test(T&& value) { |
| 72 | return match(value |
| 73 | ,[](std::string value) { std::cout << "This is string "; return value + " Hi!"; } |
| 74 | ,[](int i) { std::cout << "This is int "; return i * 100; } |
| 75 | ,[](auto a) { std::cout << "This is default ";return 0; } |
| 76 | ); |
| 77 | } |
| 78 | |
| 79 | int main() { |
| 80 | std::cout << test(200) << std::endl; |