Circus 0.0.1-alpha
C++ Serialization Framework
|
Provides compile-time traits and C++20 concepts for type introspection used throughout the Circus library. More...
#include <cstdint>
#include <iostream>
#include <vector>
Go to the source code of this file.
Classes | |
struct | circus::traits::exists< Ts, Us > |
Checks if a type Ts exists among a variadic list of types Us. More... | |
struct | circus::traits::pair_inspect< T, typename > |
Trait to determine if a type is a pair-like structure (has .first and .second). More... | |
struct | circus::traits::pair_inspect< T, std::void_t< decltype(std::declval< T >().first), decltype(std::declval< T >().second)> > |
struct | circus::traits::is_vector< T > |
Trait to determine if a type is a std::vector. More... | |
struct | circus::traits::is_vector< std::vector< T, A > > |
Concepts | |
concept | circus::traits::ComparableTypes |
Concept that checks if all types match a given type. | |
concept | circus::traits::IsSerializable |
Concept that checks whether a type has a .serialize(std::ostream&) method. | |
concept | circus::traits::OutStream |
Concept that checks if a type can be used as an output stream. | |
concept | circus::traits::OutStreamableLiteral |
Concept for values that can be streamed using << to an std::ostream. | |
concept | circus::traits::InStream |
Concept that checks if a type can be used as an input stream. | |
concept | circus::traits::InStreamable |
Concept for values that can be extracted from an std::istream using >>. | |
concept | circus::traits::PairSerializable |
Concept for types that behave like key-value pairs. | |
concept | circus::traits::StringLike |
Concept for types that can be converted to a string-like view. | |
concept | circus::traits::Serializable |
Concept for types that are serializable via either literal streaming or custom serialize. | |
concept | circus::traits::Flaggable |
Concept for enum types that are eligible for flagging (i.e., bitmask ops). | |
concept | circus::traits::StreamableVector |
Concept for std::vector-like containers whose elements can be streamed. | |
concept | circus::traits::Container |
Concept for containers that satisfy a wide set of STL-like requirements. Includes regularity, iterator properties, size access, etc. |
Provides compile-time traits and C++20 concepts for type introspection used throughout the Circus library.