Support Class Library
A set of tools providing classes and utility
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345]
 Cscl::utils::details::__any_base
 Cscl::async::ActiveA class that allow task execution on a separate thread using RAII semantics
 Cscl::utils::AnyClass that can hold any value type (and change value type mid lifetime)
 Cscl::concepts::AssignableWith< T, U >AssignableWith concept, a type U is assignable to a type T if operator=() is defined for both types (or implicit conversions)
 Cscl::async::AsyncQueue< T, Lock, Guard, Container >
 Cstd::basic_string< Char >STL class
 Cscl::concepts::BinaryPredicate< F, T, U >BinaryPredicate concept, a type F is a binary predicate over T and U if it is an n-ary predicate over those types
 Cscl::concepts::Boolean< T >Boolean concept, a type is boolean if it defines all boolean operations
 Cscl::async::Channel< T, Lock, Guard, Container >A channel to use for asynchronous communication of data in a queued manner
 Cscl::async::Channel< message_type >
 Cscl::async::details::channel_actor_traits< Actor >Traits for actors that interact with the channel
 Cscl::async::details::channel_actor_traits< ChannelReceiver >
 Cscl::async::details::channel_actor_traits< ChannelSender >
 Cscl::async::details::channel_transport_traits< Chan >Traits for the implementation of the transport of information in a scl::async::Channel
 Cscl::async::details::ChannelReceiver< Chan >
 Cscl::async::details::ChannelReceiver< Channel >
 Cscl::async::details::ChannelSender< Chan >Class used to send data to a Channel
 Cscl::async::details::ChannelSender< Channel >
 Cscl::concepts::CharTraits< T, CharT >CharTraits concept
 Cscl::concepts::Constructible< T, Args >Constructible concept, a type is constructible with the given arguments if it is destructible and meta::is_constructible<T, Args...>() is true
 Cscl::concepts::ConvertibleTo< From, To >Conversion concept, a type From is convertible to another type To if meta::is_convertible<From, To>() is true
 Cscl::concepts::Copyable< T >Copyable concept, a type is copyable if it is both copy constructible and copy assignable
 Cscl::concepts::CopyAssignable< T >CopyAssignable concept, a type T is copy assignable if meta::is_copy_assignable<T>() is true
 Cscl::concepts::CopyConstructible< T >CopyConstructible concept, a type T is copy constructible if meta::is_copy_constructible<T>() is true
 Cscl::concepts::DefaultConstructible< T >DefaultConstructible concept, a type T is default constructible if it defines a default constructor
 Cscl::concepts::DerivedFrom< Derived, Base >DerivedFrom concept, a type Derived is derived from another type Base if Derived is a derives from Base
 Cscl::concepts::Destructible< T >Destructible concept, a type T is destructible if it defines a destructor that won't throw
 Cscl::utils::Either< Lhs, Rhs >Alternative type that stores one or the other
 Cscl::utils::Either< value_type, error_type >
 Cscl::concepts::EqualityComparable< T >EqualityComparable concept, a type T is equality comparable if it defines an operator== with itself
 Cscl::concepts::EqualityComparableWith< T, U >EqualityComparableWith concept, a type T is equality comparable with another type U if it defines an operator== with U
 Cstd::exceptionSTL class
 Cfalse_type
 Cscl::stream::operators::details::filter_toolbox< T >Tag type for filter operations
 Cscl::tools::meta::fn< class, class >
 Cscl::tools::meta::fn< decltype(&F::operator()), std::nullptr_t >
 Cscl::tools::meta::fn< R(*)(Args...), void >
 Cscl::tools::meta::fn< R(Class::*const)(Args...), std::nullptr_t >
 Cscl::tools::meta::fn< R(Class::*const)(Args...), void >
 Cscl::stream::terminators::details::for_each_toolbox< T >ForEach toolbox tag
 Cscl::tools::meta::function_traits< class >Traits for callable types
 Cscl::tools::meta::function_traits< std::function< R(Args...)> >Specialization for std::function
 Cscl::concepts::FunctionObject< F, Args >FunctionObject concept, a type F is a function object that accepts Args..
 Cscl::concepts::Hash< T, Key >Hash concept, a type T is an hash for Key if it is a function object, copy constructible, destructible, and the return type of its invocation w/ a Key is std::size_t
 Cscl::concepts::InequalityComparable< T >InequalityComparable concept, a type T is equality comparable if it defines an operator!= with itself
 Cscl::concepts::InequalityComparableWith< T, U >InequalityComparableWith concept, a type T is equality comparable with another type U if it defines an operator!= with U
 Cscl::concepts::Integral< T >Intergal concept, a type T is integral if meta:is_integral<T>() is true
 Cscl::stream::details::InvalidValue
 Cscl::concepts::Invocable< F, Args >Invocable concept, a type F is invocable with Args if meta::is_invocable<F, Args...>() is true
 Cistream_iterator
 Cscl::concepts::Iterator< T >Iterator concept, a type is an iterator if it is copyable, destructible, swappable, has well-defined iterator_traits and can be incremented and dereferenced
 Cscl::concepts::LessThanComparable< T >LessThanComparable concept, a type T is less than comparable if it defines an operator< with itself
 Cscl::concepts::LessThanComparableWith< T, U >LessThanComparableWith concept, a type T is equality comparable with another type U if it defines an operator< with U
 Cscl::utils::Either< Lhs, Rhs >::lhs_tagTag used to construct the LHS member (in case both are convertible types)
 Cscl::stream::operators::details::map_toolbox< T, U >Tag type that allows operation piping for map operations
 Cscl::concepts::Movable< T >Movable concept, a type is movable if it is both move constructible and move assignable
 Cscl::concepts::MoveAssignable< T >MoveAssignable concept, a type T is move assignable if meta::is_move_assignable<T>() is true
 Cscl::concepts::MoveConstructible< T >MoveConstructible concept, a type T is move constructible if meta::is_move_constructible<T>() is true
 Cscl::async::Mutexed< T, Lock, Guard >A wrapper class that protects a value with a lock
 Cscl::async::Mutexed< queue_type, Lock, Guard >
 Cscl::concepts::NonCopyable< T >NonCopyable concept, a type is non copyable if it is neither copy constructible nor copy assignable
 Cscl::utils::NoneAn empty class serving as the type of an empty Optional<T>
 Cscl::concepts::NonMovable< T >NonMovable concept, a type is non movable if it is neither move constructible nor move assignable
 Cscl::tools::meta::details::NoOp< T >Type construct that exposes a single type that is its type argument
 Cscl::concepts::NullablePointer< T >NullablePointer concept, a type is said to be a nullable pointer type if its interactions w/ nullptr are defined and can be compared using operator!=
 Cscl::utils::Optional< T >A class that allows the use of optional types (might be there)
 Cscl::utils::Optional< Lhs >
 Cscl::utils::Optional< Rhs >
 Cscl::utils::Optional< value_type >
 Cscl::utils::Either< Lhs, Rhs >::payload_tPayload type that encapsulates both alternatives
 Cscl::utils::PlaceholderClass representing parameter/return argument placholders
 Cscl::concepts::Predicate< F, Args >Predicate concept, a type F is a predicate with Args if it is RegularInvocable and its result is Boolean
 Cscl::utils::RawStorage< T >Class that handles raw storage (and manual memory management) for a variable type
 Cscl::utils::RawStorage< Lhs >
 Cscl::utils::RawStorage< Rhs >
 Cscl::utils::RawStorage< value_type >
 Cscl::tools::meta::real_const< T, class >Get the appropriate const version of a type
 Cscl::tools::meta::real_const< T *, void >Specialization for pointers
 Cscl::concepts::Regular< T >Regular concept, a type is Regular if it is SemiRegular and EqualityCOmparable
 Cscl::concepts::RegularInvocable< F, Args >RegularInvocable concept, a type F is regular invocable with Args if it is Invocable and is equality preserving and does not modify its arguments
 Cscl::concepts::Relation< R, T, U >Relation concept, a type R is a relation between T and U if it defines the 4 combinations
 Cscl::utils::Result< Value, Error >
 Cscl::utils::details::result_error
 Cscl::utils::details::result_value//
 Cscl::utils::Either< Lhs, Rhs >::rhs_tagTag used to construct the RHS member (in case both are convertible types)
 Cscl::concepts::Same< Lhs, Rhs >Same concept, two types Lhs and Rhs are considered the same if meta::is_same<Lhs, Rhs>() is true
 Cscl::concepts::SemiRegular< T >SemiRegular concept, a type is semi regular if it is Copyable and DefaultConstructible
 Cscl::concepts::Signed< T >Signed concept, a type T is signed if meta::is_signed<T>() is true
 Cscl::concepts::SignedIntegral< T >SignedIntegral concept, a type is a signed integral if it is both Integral and Signed
 Cscl::http::StatusCode
 Cscl::stream::details::iterator::StlAdapter< T >An adapter for STL-like iterators from stream iterators
 Cscl::stream::Stream< T >Class representing a stream of data
 Cscl::stream::details::iterator::StreamIterator< T >Abstract base class for stream iterators defining the required behavior
 Cscl::stream::details::iterator::StreamIterator< iterator_value_type< It > >
 Cscl::stream::details::iterator::StreamIterator< U >
 Cscl::stream::details::StreamIteratorPayload< T >A class representing a stream iterator's payload
 Cscl::concepts::Swappable< T >Swappable concept, a type is swappable if it defines swapping mecanisms
 Cscl::stream::terminators::pack::details::to_set_toolboxTag type to pack into a std::set w/ default template parameters
 Cscl::stream::terminators::pack::details::to_set_toolbox_alloc< Compare, Allocator >Tag type to pack into a std::set w/ control over template parameters
 Cscl::stream::terminators::pack::details::to_vector_toolboxTag type to pack into a vector w/ default template parameters
 Cscl::stream::terminators::pack::details::to_vector_toolbox_alloc< Allocator >Tag type to pack into a vector w/ control over the allocator
 Cscl::utils::ToString< T, class >
 Cscl::utils::ToString< None >A specialization of ToString for None type
 Cscl::utils::ToString< Optional< T >, scl::tools::meta ::enable_if_t< scl::tools::meta ::defines_scl_to_string< T >() > >
 Cscl::utils::ToString< scl::http::StatusCode >
 Cscl::utils::ToString< scl::http::Version, void >
 Cscl::utils::ToString< T, scl::tools::meta ::enable_if_t< scl::tools::meta ::defines_std_to_string< T >() > >Specialization for types that define std::to_string
 Cscl::utils::ToString< T, scl::tools::meta ::enable_if_t< scl::tools::meta ::is_base_of< scl::exceptions::Throwable, T >() > >Specialization of ToString for Throwable types
 Cscl::utils::ToString< T, scl::tools::meta ::enable_if_t< scl::tools::meta ::is_same< T, char >()||scl::tools::meta ::is_same< T, const char * >()||scl::tools::meta ::is_same< T, std::string >() > >Specialization for types convertible to string
 Ctrue_type
 Ctuple_size
 Cscl::stream::operators::details::unique_toolboxToolbox tag for unique operations
 Cscl::stream::operators::details::uniqueBy_toolbox< T, U >Toolbox tag type for unique by operations
 Cscl::concepts::Unsigned< T >Unsigned concept, a type T is unsigned if meta::is_unsigned<T>() is true
 Cscl::concepts::UnsignedIntegral< T >UnsignedIntegral concept, a type is an unsigned integral if it is both Integral and Unsigned
 Cscl::concepts::ValueSwappable< T >ValueSwappable concept, a type is value swappable if it is an iterator type and its value type is swappable
 Cscl::http::VersionA pseudo enum class that describes the version of the HTTP Protocol
 Cscl::async::with_traits< Resource >Traits for use with the scl::async::with function
 Cscl::async::with_traits< Mutexed< T > >
 Cscl::async::with_traits< std::mutex >