35 KeyException(::std::string msg) : ::std::logic_error{msg}
55template <
typename KeyType,
char Separator>
57 using opt_key_t = std::optional<KeyType>;
60 std::queue<KeyType> tokens_{};
63 explicit Tokenizer(KeyType key) : key_{key}
68 for (
auto const& c : key) {
79 [[nodiscard]] opt_key_t
84 auto token = tokens_.front();
86 return std::make_optional(std::move(token));
94 throw KeyException(
"Empty token in key '" + key_ +
"'.");
95 tokens_.push(std::move(token_));
101static constexpr char const*
104 return typeid(T).name();
144typeName<std::string>()
146 return "std::string";
151typeName<char const*>()
153 return "const char*";
Simple string tokenizer. Used by Config.
Definition Helpers.hpp:56
Thrown when a KeyPath related error occurs.
Definition Helpers.hpp:34
Thrown when a Store (config's storage) related error occurs.
Definition Helpers.hpp:43