tagval 0.2.0
Modern C++23 header-only library of tagged values (open/closed enumerations with metadata)
Loading...
Searching...
No Matches
tagval.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <tagval/base.hpp>
9#include <tagval/entry.hpp>
10#include <tagval/error.hpp>
11#include <tagval/format.hpp>
12#include <tagval/hash.hpp>
15#include <tagval/macros.hpp>
16#include <tagval/open_ended.hpp>
18#include <tagval/ostream.hpp>
19#include <tagval/parcel.hpp>
20#include <tagval/values.hpp>
21#include <tagval/version.hpp>
CRTP HandleBase used by ClosedEnded and OpenEnded.
ClosedEnded base — values come from a compile-time Values<...> list.
Public kind-level metadata struct.
Compile-time Entry NTTP and the runtime-view TagValMetadata struct.
tagval exception types and ParseError record used by try_of().
std::formatter partial specialization — formats any tagval value as its code().
std::hash partial specialization for any tagval value type.
Optional nlohmann::json integration.
Program-wide registry of every tag-value kind that opts in via the TAGVAL_REGISTER_KIND macro.
TAGVAL_* macros for declaring entries.
OpenEnded base — same in-class declaration shape as ClosedEnded (TAGVAL_ENTRY + using values_t = tagv...
Per-Owner runtime registry used by OpenEnded kinds.
operator<< for any tagval value type — writes value.code() to the stream.
Optional cpp-parcel integration.
Compile-time list of Entry types for ClosedEnded kinds.