https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97358
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- If what clang++ does with the copy ctors is right, then what firefox does is inefficient and [aSpecialValueMappers](const SpecialConstant<S>& aSpecialValue) { return ErrorResult{aSpecialValueMappers(aSpecialValue)}; }... would be more efficient. That doesn't mean we shouldn't fix this PR.