This is colection of packages:
- btl:autoptr: smart pointers like c++
std::shared_ptr,std::weak_ptr,std::enable_shared_from_thisand more.- SharedPtr reference counted pointer with support for aliasing and optional weak pointer support.
- RcPtr reference counted pointer with limited support for aliasing (but small size and lock free manipulation of pointer) and optional weak pointer support.
- IntrusivePtr reference counted pointer with reference counting inside of managed object with limited support for aliasing (but small size and lock free manipulation of pointer) and optional weak pointer support.
- UniquePtr non copyable owning pointer that owns and manages object through a pointer and disposes of that object when goes out of scope.
- GlobalPtr (beta) non-owning pointer
GlobalPtrto global data (static, gc, ...).
- btl:string mutable string with small string optimization like c++
std::basic_stringandstd::string- BasicString Generalization of struct string with optional small string optimization for min
Ncharacters of type char, wchar and dchar. - SmallString Generalization of struct string with small string optimization for min
Ncharacters of type char, wchar and dchar. - LargeString Generalization of struct string without small string optimization for characters of type char, wchar and dchar.
- FixedString Generalization of struct string with max
Ncharacters of type char, wchar and dchar. - String alias to
BasicString!char.
- BasicString Generalization of struct string with optional small string optimization for min
- btl:vector dynamic array like c++
std::vectorandfolly::small_vector- Vector sequence container with growable capacity.
- SmallVector sequence container with growable capacity that implements small buffer optimization for
Nelements. - FixedVector sequence container with max
Nelements.
- btl:list (beta) linked list like c++
std::listandstd::forward_list- List sequence container - bidirectional linked list.
- ForwardList sequence container - single linked list.
This repository was in past divided into 3 repositories: autoptr, small-vector and basic-string but they shared many internal parts so I unite them under one.