Resources By Topic¶
This page contains library documentation, documents, and presentations grouped by subject area.
Allocators¶
BDE objects that allocate memory are designed to use a user-defined memory allocating mechanism (i.e., an allocator) that is specified on object construction. Note that, unlike allocators specified as class-template parameters (à la policy-based design), specifying an allocator this way does not define a new type. Different objects of the same type can use different allocator mechanisms, and still fully interact with each other.
Library Documentation
Protocol, allocators, guards, and proctors: bslma
Concrete allocators and pools: bdlma
Allocator that records stack trace on allocations: balst_stacktracetestallocator.
Documents
Date and Time¶
BDE Provides types for representing dates, times, and calendars, as well as common facilities for operating on these types (e.g., obtaining the current system time, converting time values between time zones).
Calendars¶
A range of dates with weekly designated non-business days (i.e., weekend days) and other designated special days (i.e., holidays).
Library Documentation
Calendar protocols and types: bdlt.
Current Date and Time¶
Library Documentation
Current Date/time: bdlt_currenttime.
Current Time Zone Offset: bdlt_localtimeoffset.
Current Epoch Time: bsls_systemtime.
Date and Time¶
Library Documentation
Vocabulary types and utilities: bdlt and baltzo_localdatetime.
Documents
Time Zones¶
Library Documentation
Vocabulary type: baltzo_localdatetime.
Olson time zones: baltzo.
Mapping Olson time zones with Windows time zones: baltzo_windowstimezoneutil.
Timing¶
Library Documentation
Process user/system/wall times: bsls_stopwatch.
Manage actions at specified times: bdlmt_eventscheduler and bdlmt_timereventscheduler.
Documents
Conversions¶
Library Documentation
Convert date/time values between BDE vocabulary types and ISO8601-formatted strings: bdlt_iso8601util and bdlt_iso8601utilconfiguration.
Decimal Floating-Point¶
Library Documentation
Libraries specialized for accurate base-10 arithmetic (IEEE-754 2008): bdldfp.
Documents
Article: Binary to Decimal and Back Again.
Defensive Programming¶
Redundant code providing optional run-time checks to validate preconditions (and invariants):
Library Documentation
Macros: bsls_assert and bsls_review.
Documents
White paper: Contracts, Undefined Behavior, and Defensive Programming
White paper: Defensive Checking Versus Input Validation
Function Abstractions¶
Objects that serve as functions:
Library Documentation
Functor creation: bdlf.
Glossary of BDE Terminology¶
Library Documentation
Component: bsldoc_glossary.
Logging and Metrics¶
Publish status from a running program
Library Documentation
Documents
Messaging¶
Serialization of values in different formats:
Library Documentation
XML: balxml.
BER: balber_berdecoder and balber_berencoder.
BDE externalization format: bslx.
Documents
Article: Introducing bdljsn::Json
Miscellaneous¶
Library Documentation
Bit manipulation: bdlb_bitutil.
Hash functions: bdlb_hashutil.
Template for nullable types: bdlb_nullablevalue.
Discriminated
union
-like type: bdlb_variant.Documents
White paper: Embracing Modern C++ Safely
OS Operations¶
Library Documentation
Platform-independent operations on files/pathnames/memory/processes/pipes: bdls.
Messages over named pipes: balb_pipecontrolchannel.
Parsing¶
Library Documentation
Perl regular expressions: bdlpcre_regex.
String tokenisation: bdlb_tokenizer.
Numeric parsing: bdlb_numericparseutil.
Smart Pointers¶
Mechanisms for managing resource recovery:
Library Documentation
Pointer with user-supplied deleter: bslma_managedptr.
Thread-safe, reference-counted pointers: bslstl_sharedptr.
Testing¶
Library Documentation
Standard test driver:
ASSERT
,ASSERTV
, and print macros: bslim_testutil.Track memory usage: bslma_testallocator.
Macros for “negative” testing: bsls_asserttest.
Macros for testing protocols: bsls_protocoltest.
Macros for template testing: bsltf_templatetestfacility.
Documents
Article: Fuzz Testing
Threads¶
Concurrent programming:
Library Documentation
Thread Primitives: Atomic integers: bsls_atomic.
Thread Primitives: Mutexes, semaphores, read-write locks, and thread-management: bslmt.
Thread-Safe Containers: bdlcc.
Thread Pools and Event Schedulers: bdlmt.
Documents
Article: Concurrent Queue Evaluation
Vocabulary & Data Structures¶
Documents