btl 1.0.0-rc.18

Basic Template Library


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


This package provides sub packages which can be used individually:

btl:traits - traits

btl:lifetime - lifetime

btl:autoptr - Smart pointers.

btl:string - Mutable @nogc string struct using `std.experimental.allocator` for allocations.

btl:vector - Dynamic array supporting custom allcoators.

btl:list - List supporting custom allcoators.

Basic Template Library

About

This is colection of packages:

  • btl:autoptr: smart pointers like c++ std::shared_ptr, std::weak_ptr, std::enable_shared_from_this and 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)
  • btl:string mutable string with small string optimization like c++ std::basic_string and std::string
  • BasicString Generalization of struct string with optional small string optimization for min N characters of type char, wchar and dchar.
  • SmallString Generalization of struct string with small string optimization for min N characters 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 N characters of type char, wchar and dchar.
  • String alias to BasicString!char.
  • btl:vector dynamic array like c++ std::vector and folly::small_vector
  • Vector sequence container with growable capacity.
  • SmallVector sequence container with growable capacity that implements small buffer optimization for N elements.
  • FixedVector sequence container with max N elements.
  • btl:list (beta) linked list like c++ std::list and std::forward_list
  • List sequence container - bidirectional linked list.
  • ForwardList sequence container - single linked list.

Documentation

https://submada.github.io/btl

Code

  • https://github.com/submada/btl
  • https://gitlab.com/submada/btl

Package

  • https://code.dlang.org/packages/btl

History

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.

Authors:
  • Adam Búš
Sub packages:
btl:traits, btl:lifetime, btl:autoptr, btl:string, btl:vector, btl:list
Dependencies:
btl:traits, btl:lifetime, btl:autoptr, btl:string, btl:vector, btl:list
Versions:
1.0.0-rc.18 2022-May-26
1.0.0-rc.17 2022-May-26
1.0.0-rc.16 2022-May-22
1.0.0-rc.15 2022-May-21
1.0.0-rc.14 2022-May-19
Show all 19 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 61 downloads total

Score:
0.8
Short URL:
btl.dub.pm