https://github.com/yexuanxiao/deque
The next-generation deque container for C++
https://github.com/yexuanxiao/deque
cpp23 cpp23-library modern-cpp
Last synced: 4 months ago
JSON representation
The next-generation deque container for C++
- Host: GitHub
- URL: https://github.com/yexuanxiao/deque
- Owner: YexuanXiao
- License: mit
- Created: 2025-02-10T08:26:31.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-03T05:44:01.000Z (about 1 year ago)
- Last Synced: 2025-05-03T06:26:38.604Z (about 1 year ago)
- Topics: cpp23, cpp23-library, modern-cpp
- Language: C++
- Homepage:
- Size: 354 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [deque](https://github.com/yexuanXiao/deque)
[](https://github.com/YexuanXiao/deque/actions/workflows/ci.yml)
The next-generation deque container for C++, written and designed using modern C++ with sufficiently good performance. Fully maintaining compatibility with the std::deque and supports contiguous access through buckets. Requires C++20.
The [noalloc](https://github.com/YexuanXiao/deque/tree/noalloc) branch provides an allocator-free version to explain the design of the deque and facilitate further modifications. The repository [deque-test](https://github.com/YexuanXiao/deque-test) provides a ported version of the test cases from libc++. The repository [deque-benchmark](https://github.com/YexuanXiao/deque-benchmark) provides performance tests to compare the performance differences between this and the three other standard library implementations.
This implementation is better than libstdc++, libc++, and Microsoft STL. See [STL-vNext #3](https://github.com/YexuanXiao/STL-vNext/issues/3).
## Compiler Portability
GCC 11+, Clang 13+, MSVC 19.43+
## Standard Library Portability
libstdc++10+, libc++16+, MSVC STL 19.29+
## Notes
It is recommended to use the latest compilers and standard libraries as they provide more optimized code.
Build tests cannot using the libc++, due to libc++ has not yet implemented `views::enumerate`.