nfx-serialization 0.3.0
Cross-platform C++ JSON serialization library with extensible trait capabilities
Loading...
Searching...
No Matches
Concepts.h File Reference

C++20 concepts for JSON serialization type constraints. More...

#include <concepts>
#include <type_traits>
Include dependency graph for Concepts.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  nfx::serialization::json::is_json_container< T >
 Type trait to identify JSON container types (Object, Array). More...
struct  nfx::serialization::json::is_json_container< Document >
 Specialization for Document. More...

Concepts

concept  nfx::serialization::json::JsonPrimitive
 Concept for JSON-compatible primitive types.
concept  nfx::serialization::json::JsonValue
 Concept for all JSON-compatible value types.
concept  nfx::serialization::json::JsonContainer
 Concept for JSON container types only.
concept  nfx::serialization::json::JsonCheckable
 Concept for types that can be checked with is<T>().

Variables

template<typename T>
constexpr bool nfx::serialization::json::is_json_container_v = is_json_container<std::decay_t<T>>::value
 Helper variable template.

Detailed Description

C++20 concepts for JSON serialization type constraints.

Defines JsonPrimitive concept and type traits infrastructure for type-safe template constraints in the Document API.

Note
JsonValue, JsonContainer, and JsonCheckable concepts are defined at the end of Document.h after Document::Object and Document::Array are fully defined, since nested class forward declarations don't work with concepts.

Definition in file Concepts.h.

Variable Documentation

◆ is_json_container_v

template<typename T>
bool nfx::serialization::json::is_json_container_v = is_json_container<std::decay_t<T>>::value
inlineconstexpr

Helper variable template.

Definition at line 71 of file Concepts.h.