#include #include void empty_symbol() { } template constexpr bool match(std::string_view input, Pattern) { return bool(ctre::regular_expression::match(input.begin(), input.end())); } template constexpr bool search(std::string_view input, Pattern) { return bool(ctre::regular_expression::search(input.begin(), input.end())); } template constexpr bool starts_with(std::string_view input, Pattern) { return bool(ctre::regular_expression::starts_with(input.begin(), input.end())); } using namespace std::string_view_literals; // issue #131 static_assert(match("x"sv, ctre::sequence>, ctre::character<'x'>>())); static_assert(match("1x"sv, ctre::sequence>, ctre::character<'x'>>())); static_assert(match("1x"sv, ctre::sequence>, ctre::character<'x'>>())); static_assert(match("1x"sv, ctre::sequence > >, ctre::character<'x'>>())); static_assert(match("1yx"sv, ctre::sequence >, ctre::character<'y'> >, ctre::character<'x'>>())); static_assert(match("aaab"sv, ctre::sequence>>, ctre::character<'b'>>())); static_assert(match("aaa"sv, ctre::possessive_plus>>())); static_assert(match("aaa"sv, ctre::lazy_plus>>())); static_assert(match("aaaa"sv, ctre::possessive_plus>>())); static_assert(match(""sv, ctre::lazy_star>())); static_assert(match("aaaa"sv, ctre::possessive_plus>, ctre::lazy_star>>())); static_assert(match("aaaab"sv, ctre::possessive_plus>, ctre::lazy_star>>()));