Support Class Library
A set of tools providing classes and utility
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123456]
 NsclGlobal namespace of the SCL
 NasyncBase namespace for asynchronous APIs
 Ndetails
 CActiveA class that allow task execution on a separate thread using RAII semantics
 CAsyncQueue
 CChannelA channel to use for asynchronous communication of data in a queued manner
 CMutexedA wrapper class that protects a value with a lock
 Cwith_traitsTraits for use with the scl::async::with function
 Cwith_traits< Mutexed< T > >
 Cwith_traits< std::mutex >
 NconceptsA lightweight concept-like library for C++11
 NdetailsImplementation details for concepts
 CAssignableWithAssignableWith concept, a type U is assignable to a type T if operator=() is defined for both types (or implicit conversions)
 CBinaryPredicateBinaryPredicate concept, a type F is a binary predicate over T and U if it is an n-ary predicate over those types
 CBooleanBoolean concept, a type is boolean if it defines all boolean operations
 CCharTraitsCharTraits concept
 CConstructibleConstructible concept, a type is constructible with the given arguments if it is destructible and meta::is_constructible<T, Args...>() is true
 CConvertibleToConversion concept, a type From is convertible to another type To if meta::is_convertible<From, To>() is true
 CCopyableCopyable concept, a type is copyable if it is both copy constructible and copy assignable
 CCopyAssignableCopyAssignable concept, a type T is copy assignable if meta::is_copy_assignable<T>() is true
 CCopyConstructibleCopyConstructible concept, a type T is copy constructible if meta::is_copy_constructible<T>() is true
 CDefaultConstructibleDefaultConstructible concept, a type T is default constructible if it defines a default constructor
 CDerivedFromDerivedFrom concept, a type Derived is derived from another type Base if Derived is a derives from Base
 CDestructibleDestructible concept, a type T is destructible if it defines a destructor that won't throw
 CEqualityComparableEqualityComparable concept, a type T is equality comparable if it defines an operator== with itself
 CEqualityComparableWithEqualityComparableWith concept, a type T is equality comparable with another type U if it defines an operator== with U
 CFunctionObjectFunctionObject concept, a type F is a function object that accepts Args..
 CHashHash 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
 CInequalityComparableInequalityComparable concept, a type T is equality comparable if it defines an operator!= with itself
 CInequalityComparableWithInequalityComparableWith concept, a type T is equality comparable with another type U if it defines an operator!= with U
 CIntegralIntergal concept, a type T is integral if meta:is_integral<T>() is true
 CInvocableInvocable concept, a type F is invocable with Args if meta::is_invocable<F, Args...>() is true
 CIteratorIterator concept, a type is an iterator if it is copyable, destructible, swappable, has well-defined iterator_traits and can be incremented and dereferenced
 CLessThanComparableLessThanComparable concept, a type T is less than comparable if it defines an operator< with itself
 CLessThanComparableWithLessThanComparableWith concept, a type T is equality comparable with another type U if it defines an operator< with U
 CMovableMovable concept, a type is movable if it is both move constructible and move assignable
 CMoveAssignableMoveAssignable concept, a type T is move assignable if meta::is_move_assignable<T>() is true
 CMoveConstructibleMoveConstructible concept, a type T is move constructible if meta::is_move_constructible<T>() is true
 CNonCopyableNonCopyable concept, a type is non copyable if it is neither copy constructible nor copy assignable
 CNonMovableNonMovable concept, a type is non movable if it is neither move constructible nor move assignable
 CNullablePointerNullablePointer concept, a type is said to be a nullable pointer type if its interactions w/ nullptr are defined and can be compared using operator!=
 CPredicatePredicate concept, a type F is a predicate with Args if it is RegularInvocable and its result is Boolean
 CRegularRegular concept, a type is Regular if it is SemiRegular and EqualityCOmparable
 CRegularInvocableRegularInvocable concept, a type F is regular invocable with Args if it is Invocable and is equality preserving and does not modify its arguments
 CRelationRelation concept, a type R is a relation between T and U if it defines the 4 combinations
 CSameSame concept, two types Lhs and Rhs are considered the same if meta::is_same<Lhs, Rhs>() is true
 CSemiRegularSemiRegular concept, a type is semi regular if it is Copyable and DefaultConstructible
 CSignedSigned concept, a type T is signed if meta::is_signed<T>() is true
 CSignedIntegralSignedIntegral concept, a type is a signed integral if it is both Integral and Signed
 CSwappableSwappable concept, a type is swappable if it defines swapping mecanisms
 CUnsignedUnsigned concept, a type T is unsigned if meta::is_unsigned<T>() is true
 CUnsignedIntegralUnsignedIntegral concept, a type is an unsigned integral if it is both Integral and Unsigned
 CValueSwappableValueSwappable concept, a type is value swappable if it is an iterator type and its value type is swappable
 NdetectNamespace for detecting features, platform, etc..
 NplatformNamespace for platform detection
 NexceptionsThe namespace englobing all exception types
 CEmptyOptionalAccessException class used when attempting to access the value of an empty scl::utils::Optional
 CExceptionBase class for all regular exceptions
 CInvalidAnyCastException class used when attempting to cast an Any to the wrong type
 CInvalidArgumentException class used when passing an argument that does not respect the preconditions
 CInvalidCastException class used when a conversion is impossible
 CInvalidEitherAccessException class used when attempting to access the wrong type stored in an scl::utils::Either
 CInvalidResourceException class used when a resource is used without specialized traits
 CInvalidResultAccessException class used when attempting to access the wrong type stored in an scl::utils::Either
 CNonNullViolation
 COutOfBoundException class used when attempting to access elements out of bounds (eg
 CRuntimeExceptionBase class for exceptions that could never be checked at compile-time
 CThrowableBase class of all throwable objects
 CUninitializedMemoryAccessException class used when trying to access uninitialized memory
 NhttpNamespace for the HTTP components
 CStatusCode
 CVersionA pseudo enum class that describes the version of the HTTP Protocol
 NstreamNamespace of the stream API
 NcreatorsNamespace for functions and utilities that create streams (lazy)
 NdetailsImplementation details for the stream API
 NoperatorsNamespace for intermediate operations on streams (lazy)
 NterminatorsNamespace for stream terminal/final operations (eager)
 CStreamClass representing a stream of data
 NtoolsGeneral purpose tooling
 NiostreamNamespace for the iostream oriented tools
 NmetaA namespace englobing all the TMP tools
 NutilsUtility classes (and rare functions)
 NdetailsImplementation details for the utility classes
 CAnyClass that can hold any value type (and change value type mid lifetime)
 CEitherAlternative type that stores one or the other
 CNoneAn empty class serving as the type of an empty Optional<T>
 COptionalA class that allows the use of optional types (might be there)
 CPlaceholderClass representing parameter/return argument placholders
 CRawStorageClass that handles raw storage (and manual memory management) for a variable type
 CResult
 CToString
 CToString< None >A specialization of ToString for None type
 CToString< Optional< T >, scl::tools::meta ::enable_if_t< scl::tools::meta ::defines_scl_to_string< T >() > >
 CToString< scl::http::StatusCode >
 CToString< scl::http::Version, void >
 CToString< T, scl::tools::meta ::enable_if_t< scl::tools::meta ::defines_std_to_string< T >() > >Specialization for types that define std::to_string
 CToString< T, scl::tools::meta ::enable_if_t< scl::tools::meta ::is_base_of< scl::exceptions::Throwable, T >() > >Specialization of ToString for Throwable types
 CToString< 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
 NstdSTL namespace
 Ctuple_size< scl::async::Channel< T, Lock, Guard, Container > >