diff --git a/include/chaiscript/language/chaiscript_parser.hpp b/include/chaiscript/language/chaiscript_parser.hpp index 0cfe4223..2b7e7930 100644 --- a/include/chaiscript/language/chaiscript_parser.hpp +++ b/include/chaiscript/language/chaiscript_parser.hpp @@ -241,7 +241,7 @@ namespace chaiscript bool is_match(const std::size_t t_group, const std::string &t_str) const noexcept { auto match = [&t_str](const auto &array) { - return std::any_of(array.begin(), array.end(), [&t_str](const auto &v){ return v.c_str() == t_str; }); + return std::any_of(array.begin(), array.end(), [&t_str](const auto &v){ return v == t_str; }); }; switch (t_group) { diff --git a/include/chaiscript/utility/static_string.hpp b/include/chaiscript/utility/static_string.hpp index fb63f28e..09935fe6 100644 --- a/include/chaiscript/utility/static_string.hpp +++ b/include/chaiscript/utility/static_string.hpp @@ -28,6 +28,18 @@ namespace chaiscript return data; } + constexpr const char *begin() const noexcept { + return data; + } + + constexpr const char *end() const noexcept { + return data + m_size; + } + + bool operator==(const std::string &t_str) const noexcept { + return std::equal(begin(), end(), std::cbegin(t_str), std::cend(t_str)); + } + const size_t m_size; const char *data = nullptr; };