Ref: https://trac.wildfiregames.com/wiki/Coding_Conventions#C
auto
This paragraph should be removed/shorted, because
sometimes it does make the code more verbose by adding very little value,
sometimes it is slower because of implicit conversion,
and sometimes it is impossible lambda; structured binding and trailing return type.
The CC should state instead: Use const auto& or auto&& in range based for loops and algo-lambda-parameter or write a comment why not.
const int i = std::reduce(vec.begin(), vec.end(), [](const auto& l, const auto& r){return l + r;});
l and r is what i mean by algo-lambda-paramerer.
algorithm
There is already:
But STL is an ambiguous term and this paragraph does not appreciate std::algorithms enought
This general rule is not good. Because sometimes i have iterators or the body is an existingt function. In both situations it is bether to use std::for_each.
I would also write a paragraph about avoid old stile for-loops because iterations could be bypassed from within the body:
// avoid
for (size_t i = 0; i != 9; ++i)
{
// The iterator can be mutated. This loop never ends.
++i;
}
// saver
for (const size_t& i : std::ranges::iota(0, 9))
{
++i; // compile-error
}
Misc
could we try to integrate the code from source/lib? Licence; brace style; string type.
propably rewrite it in source/ps.
Own string type is a bad solution to add more functionality: free functions do it as well.