Initial commit

This commit is contained in:
M. George Hansen 2025-06-07 14:17:56 -06:00
commit 91d54c58d5
Signed by: mgeorgehansen
SSH key fingerprint: SHA256:JlIGiQLPyQ2RHTH3a2oVlb20Xkh9Glr8DUF4YTXHJxM
42 changed files with 2212 additions and 0 deletions

12
README.md Normal file
View file

@ -0,0 +1,12 @@
# Bedrock: A Modern C++ Stdlib Alternative
The C++ stdlib sacrifices readability and ease of use for flexibility and performance. Bedrock takes a different approach: it stresses ease of use and minimalistic abstractions for common use cases, resulting in code that is easier to read, understand, and test.
Explicit goals for Bedrock are:
1. **No implicit copies:** move semantics are given first-party support in Bedrock, and copies should never be done implicitly except for extremely simple structures where the performance cost is minimal.
2. **Easy to understand semantics:** concepts are heavily used throughout Bedrock to enforce high-level semantics, such as "Moveable", "Iterable", etc., and those concepts encompass all related behavior and best practices (e.g. "Movable" implies both move-constructable and move-assignable).
3. **Modern data structures & abstractions:** includes optional types, result types, and a robust iterator library.
4. **Everything is a buffer or view:** C++ is all about giving developers low-level access to memory, and Bedrock doesn't try to hide the fact that all data structures represent some kind of memory view or buffer.
Bedrock is currently in a HIGHLY experimental state and is being built by someone with limited C++ and stdlib experience, so USE AT YOUR OWN RISK! Changes in the 0.x version range can and WILL break existing code.