Stop writing constructors that can fail

Why constructors should never fail and how to use named factory functions with std::expected for better error handling in C++.