Core Module

Basic types, memory, text, callbacks, utilities and serialization. More...

Topics

 Fixed-Size Integers
 Fixed-width signed and unsigned integer types.
 Byte Order
 Little-endian and big-endian integer conversion.
 Atomic Operations
 Lock-free atomic integer and pointer operations.
 Streams
 Stream buffers and iostreams with peek and partial write.
 Zlib Streams
 zlib compression through stream buffers and iostreams.
 Dates and Times
 Durations and points in calendar time.
 Coroutines
 Cancellable, co_await-able tasks and lazily produced value sequences.
 Allocators
 Custom allocation strategies for optimized memory management.
 Text Processing
 Unicode characters, strings, encodings and regular expressions.
 Signals and Delegates
 Type-safe callback mechanism for connecting signals to slots and delegates.
 Type Traits and Information
 Compile-time type traits and runtime type information.
 Conversions
 Conversion between strings and numbers.
 Serialization
 Composing and decomposing types to text or binary formats.

Classes

class  Any
 Value of any copyable type. More...
class  Arg< T >
 Command-line option extracted from argc and argv. More...
class  Arg< bool >
 Boolean command-line switch. More...
class  Event
 Base class for typed events. More...
class  BasicEvent< T >
 Event base that clones, destroys and identifies a derived type T. More...
class  IOError
 I/O error. More...
class  AccessFailed
 Failed to access a resource. More...
class  NonCopyable
 Base class that disables copy construction and assignment. More...
class  SettingsError
 Invalid settings text. More...
class  Settings
 Hierarchical application settings loaded from text. More...
class  Singleton< T >
 Process-wide single instance of T. More...
struct  Void
 Marker type for an unused template argument. More...

Detailed Description

The core module is the basis for all other modules of the framework. It has no dependency on any system specific libraries except the standard C++ library. This chapter covers command-line arguments, application settings, events, type-erased values, the Void marker, non-copyable objects, singletons, fixed-size integers, byte order, atomic operations, streams, zlib streams, dates and times, coroutines, allocators, unicode text, signals and delegates, type traits, conversions, and serialization.