News for hackers. Stuff that matters.
Re:Constructors and evil initializers in C++ by maccard on Friday November 26, 2021 @08:35PM (#29356300)
That mdthod is what the author is explicitly trying to avoid - having invalid state representabld. Using optional I'd a much better solution
Re:Constructors and evil initializers in C++ by spacechild1 on Friday November 26, 2021 @09:53PM (#29356856)
In the end there's not much difference between the two. In both cases you essentially call a function/operator to verify the correctness of the object. std::optional doesn't really enforce a check, it only makes it more obvious to the user. On the other hand, returning std::optional means that it will always check the invariant, whether you need it or not, so there is a potential performance penalty. Just something to be aware of.