diff --git a/examples/simple_match/CMakeLists.txt b/examples/simple_match/CMakeLists.txt new file mode 100644 index 0000000..e533f53 --- /dev/null +++ b/examples/simple_match/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.14 FATAL_ERROR) + +# ---- Dependencies ---- + +include(../../cmake/CPM.cmake) + +CPMAddPackage( + NAME simple_match + GIT_REPOSITORY https://github.com/jbandela/simple_match.git + GIT_TAG a3ab17f3d98db302de68ad85ed399a42ae41889e + DOWNLOAD_ONLY True +) + +add_library(simple_match INTERFACE) +target_include_directories(simple_match INTERFACE "${simple_match_SOURCE_DIR}/include") + +# ---- Executable ---- + +add_executable(CPMSimpleMatchExample "main.cpp") +set_target_properties(CPMSimpleMatchExample PROPERTIES CXX_STANDARD 17) +target_link_libraries(CPMSimpleMatchExample simple_match) + diff --git a/examples/simple_match/main.cpp b/examples/simple_match/main.cpp new file mode 100644 index 0000000..9cf1e45 --- /dev/null +++ b/examples/simple_match/main.cpp @@ -0,0 +1,34 @@ +#include + +#include + +int main(int argc, char ** argv){ + 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); + if (input == "quit") { break; } + int x; + try { + x = std::stoi(input); + } catch(std::invalid_argument &) { + std::cout << "invalid input" << std::endl; + continue; + } + + 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"; } + ); + } + + return 0; +} diff --git a/examples/yaml/CMakeLists.txt b/examples/yaml/CMakeLists.txt index 98943eb..c91b97c 100644 --- a/examples/yaml/CMakeLists.txt +++ b/examples/yaml/CMakeLists.txt @@ -13,9 +13,9 @@ CPMAddPackage( GIT_TAG 012269756149ae99745b6dafefd415843d7420bb OPTIONS "YAML_CPP_BUILD_TESTS Off" - "YAML_CPP_BUILD_CONTRIB On" - "YAML_CPP_BUILD_TOOLS On" -) + "YAML_CPP_BUILD_CONTRIB Off" + "YAML_CPP_BUILD_TOOLS Off" + ) # ---- Executable ----