2019-05-17 18:07:31 +02:00
|
|
|
#include <iostream>
|
2021-01-06 14:40:33 +01:00
|
|
|
#include <simple_match/simple_match.hpp>
|
2019-05-17 18:07:31 +02:00
|
|
|
|
2021-01-06 14:40:33 +01:00
|
|
|
int main(int argc, char** argv) {
|
2019-05-17 18:07:31 +02:00
|
|
|
using namespace simple_match;
|
|
|
|
|
using namespace simple_match::placeholders;
|
|
|
|
|
|
|
|
|
|
std::string input;
|
|
|
|
|
std::cout << "please enter a number or 'quit' to exit" << std::endl;
|
|
|
|
|
|
|
|
|
|
while (true) {
|
|
|
|
|
std::cout << "> ";
|
|
|
|
|
std::getline(std::cin, input);
|
2021-01-06 14:40:33 +01:00
|
|
|
if (input == "quit") {
|
|
|
|
|
break;
|
|
|
|
|
}
|
2019-05-17 18:07:31 +02:00
|
|
|
int x;
|
|
|
|
|
try {
|
|
|
|
|
x = std::stoi(input);
|
2021-01-06 14:40:33 +01:00
|
|
|
} catch (std::invalid_argument&) {
|
2019-05-17 18:07:31 +02:00
|
|
|
std::cout << "invalid input" << std::endl;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2021-01-06 14:40:33 +01:00
|
|
|
|
|
|
|
|
match(
|
|
|
|
|
x, 1, []() { std::cout << "The answer is one\n"; }, 2,
|
|
|
|
|
[]() { std::cout << "The answer is two\n"; }, _x < 10,
|
|
|
|
|
[](auto&& a) { std::cout << "The answer " << a << " is less than 10\n"; }, 10 < _x < 20,
|
|
|
|
|
[](auto&& a) { std::cout << "The answer " << a << " is between 10 and 20 exclusive\n"; }, _,
|
|
|
|
|
[]() { std::cout << "Did not match\n"; });
|
2019-05-17 18:07:31 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|