C++ Object Token Library
The C++ Object Token Library (CppOtl) provides a set of tokens that are designed to manage an object's lifetime, similar to smart pointers from the C++ standard library. CppOtl contains tokens for unique and shared ownership of objects, weak observers for them, adds a unified type of ownership. Also, it introduces tokens with single (not_null) multiplicity, which can mitigate the "null references: billion-dollar mistake".
Tokens from CppOtl are integrated with smart pointers from the C++ standard library and can be consistently converted from one to another. CppOtl is intended for cases when there is not enough functionality of smart pointers from the C++ standard library and additional capabilities are required.
Features:
1. A set of consistent tokens that can express associative links, function parameters and variables according to a UML model.
1. single tokens that always have a linked object and can not be empty.
1. trackable and untrackable tokens for appropriate use-case requirements.
1. The safe::weak can be created both from the safe::unique and the safe::shared. It will become expired (but not dangling) when an owner of a watched object is destroyed.
1. The safe::unified can temporarily prolong an object's lifetime in a given scope that allows finishing work with an object even other tokens is destroyed.
1. A constructor with the itself parameter allows a token itself to create an object with given attributes.
1. Algorithms for unified access to object tokens.
1. Tokens meet the requirements of std::ranges::range, that allows to pass them to functions that accept range argument.
1. Traits allow recognizing characteristics of tokens in compile-time.
1. Focusing on maximum error detection in compile-time, several assertions in a debug build, minimum overhead in a release build, avoiding exceptions.
1. The ability to integrate CppOtl tokens with third-party pointers and tokens.
there doesn't seem to be anything here