https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110195
--- Comment #2 from jack <jack.cui2 at foxmail dot com> --- (In reply to Andrew Pinski from comment #1) > Before C++20, Single{} didn't call the constructor so this behavior is > expected. Could you explain why it didn't call the constructor before c++20? C++ standard rules or compiler make it this way? Really appreciate if you could explain a bit more.