https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86977
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to João Neto from comment #0) > using HashMap = std::unordered_map<K, V, KH, KEq, Alloc<void>>; This is invalid, the allocator's value type is not the same as the container's value type (which is exactly what the error tells you!) GCC will accept it as an extension in -std=gnu++17 mode, but you compiled with -std=c++17 which disables the non-standard extension.