https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98419
--- Comment #2 from Lénárd Szolnoki <leni536 at gmail dot com> --- This is probably invalid, I wasn't aware of http://eel.is/c++draft/class.temporary#3 > When an object of class type X is passed to or returned from a function, if X > has at least one eligible copy or move constructor ([special]), each such > constructor is trivial, and the destructor of X is either trivial or deleted, > implementations are permitted to create a temporary object to hold the > function parameter or result object.