subspace
subspace copied to clipboard
A concept-centered standard library for C++20, enabling safer and more reliable products and a more modern feel for C++ code.; Also home of Subdoc the code-documentation generator.
Since u32 can convert to usize, this should work, but it currently does not. We should try adjust `RangeBounds` to make it work.
* Maybe just key ones like Option::unwrap and Result::expect etc? * Just in debug builds or behind a define of some sort? Without that, panics show as being inside the...
Chromium is [gaining](https://chromium-review.googlesource.com/c/chromium/src/+/4338482) `RETURN_IF_ERROR(e)` which is built around `base::expected` (like `std::expected`). STX [has](https://lamarrr.github.io/STX/try_8h.html#a8dea522d01b12d1eba0fa940082bc857) [`TRY_OK`](https://github.com/lamarrr/STX/blob/ca2767ebaefdb5845df5bba5960cede9ed70b37c/include/stx/try_ok.h#L48-L56) and [`TRY_SOME`](https://github.com/lamarrr/STX/blob/ca2767ebaefdb5845df5bba5960cede9ed70b37c/include/stx/try_some.h#L47-L55) which are similar and hard coded to its `Result` and `Option` types. Subspace has...
- [x] Try for std::optional https://github.com/chromium/subspace/pull/302 - [ ] Try for std::expected (C++23...) - [x] FromIterator for std containers https://github.com/chromium/subspace/pull/293 - [x] FromIterator for std::string from chars https://github.com/chromium/subspace/pull/307 - [...
Use google benchmark or other performance/profiling tools to make better choices about inlining, branch ordering, [[likely]]/[[unlikely]] or other code gen in critical paths to improve performance.
This is used by `Try` and `FromIterator` now, and it allows applying the concept to types outside of your own control. This lets us apply concepts to std library types,...
For container `C` where `Into`, implement `From` (aka `Into`). That is, if the inner types can be converted, allow the container to be converted, where the body of the conversion...
We should support the `i128` and `u128` types, they can be fast when the compiler supports it with `__int128_t` and `__uint128_t` (or `__int128` and `unsigned __int128`) which will be the...
- If they are over references, like iter(), or slice iterators. - Cloning mutable references is fraught. Do we... support that? - If they are over values, like into_iter() if...
I think it would be probably nice to be able to use Subspace without fmtlib as a dependency. Though then it's not possible to use them with streams either so...