https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101583
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>: https://gcc.gnu.org/g:8ed6cfbbee74ec9e03f2558b9c36f61dd7d4dcfd commit r12-2476-g8ed6cfbbee74ec9e03f2558b9c36f61dd7d4dcfd Author: Jonathan Wakely <jwak...@redhat.com> Date: Thu Jul 22 18:49:57 2021 +0100 libstdc++: Fix non-default constructors for hash containers [PR101583] When I added the new mixin to _Hashtable, I forgot to explicitly construct it in each non-default constructor. That means you can't use any constructors unless all three of the hash function, equality function, and allocator are all default constructible. libstdc++-v3/ChangeLog: PR libstdc++/101583 * include/bits/hashtable.h (_Hashtable): Replace mixin with _Enable_default_ctor. Construct it explicitly in all non-forwarding, non-defaulted constructors. * testsuite/23_containers/unordered_map/cons/default.cc: Check non-default constructors can be used. * testsuite/23_containers/unordered_set/cons/default.cc: Likewise.