Are you aware of std::reference_wrapper?
https://en.cppreference.com/w/cpp/utility/functional/referen...
Re:Ask HN: Good C++ code bases to read?
by CyberRabbi on Wednesday October 28, 2020 @02:42PM
(#24922542)
Isn’t “non null optional” the same as just passing the base type?
Re:Ask HN: Good C++ code bases to read?
by pierrebai on Wednesday October 28, 2020 @03:04PM
(#24922812)
By reference? Yes.
But the idea of a verified type can be extended by using the verified modifier on your own type. For example, you could have a verified matrix type, where the matrix is guaranteed to be valid, non-degenerate. You can apply it to:
- matrix
- vector
- input data of any sort
And if teh compiler allowed the programmer to declare their own type modifier, the world is your oyster: you could for example tag that a matrix is a world matrix while another a local matrix and provide a function that converts from one to the other...I wrote a small blog post about the idea:
https://www.spiria.com/en/blog/desktop-software/hypothetical...
With language support around if() and others, C++ could have mde it even more convenient. Even C could have introduced such a tyupe modifier. Whenever I read about pointers being unsafe and how optionals and maybes are the solution, I roll my eyes, because non-null-ptr do the exact same thing.
The funny thing is C++ has a non-null ptr (with no language support guarantee though): references. Unfortunately, the language made them not resettable, which makes them unusable in many scenario when you'd want them to change value over time, like in most classes members.