https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90521
--- Comment #2 from colton.wernet at linquest dot com <colton.wernet at linquest dot com> --- (In reply to Marc Glisse from comment #1) > And what do you expect std::string::basic_string means? I agree it is redundant because it just means std::string::string. I am not certain why this choice was made in the gdal library. Since posting this I noticed a few things in the header: /* Avoid C2614 errors */ #ifdef MSVC_OLD_STUPID_BEHAVIOUR using std::string; # define gdal_std_string string #else # define gdal_std_string std::string #endif /* Remove annoying warnings in Microsoft eVC++ and Microsoft Visual C++ */ #if defined(WIN32CE) # pragma warning(disable:4251 4275 4786) #endif //! Convenient string class based on std::string. // This class was modified from deriving from std::string to having a string as a member. When linking against this library, linker errors would be thrown because // basic_string was already defined. It looks like this has more to do with mitigating the old microsoft tool chain than it does gcc. I apologize if this is the case. I would still greatly appreciate your input on the comments above. Thank you for your time.