https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107022
--- Comment #4 from piersh at hotmail dot com --- is it related to nested classes? this reproduces the issue: uncomment line 9 to repro: #include <unordered_map> #include <memory> struct key {}; struct my_hash { my_hash() {} //my_hash(int i = 42) {} // <<-- uncomment for bug std::size_t operator()(const key &ep) const { return 0; } }; struct foo { foo(); private: std::unordered_map<key, int, my_hash> things_; }; foo::foo() {}