I think this is asking the wrong question. The first question should be, “Can developers understand compiler error messages?” I’ve had C++ errors where templates were involved and I didn’t even know if it was in my code because the template types in the error message were so long, I didn’t see any recognizable symbols in it. You think you’re declaring a std::foo<bar>, but the error message is talking about red-black trees and deques because those pieces happen to be used internally in either foo or bar, but you didn’t reference either of them directly. It’s maddening.