Message-ID: <000b01c092d0$4b96c9c0$afe4883e@oemcomputer> From: "Stephen Silver" To: "DJGPP Workers" Subject: namespace std and libstdc++ V3 Date: Fri, 9 Feb 2001 19:41:25 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Reply-To: djgpp-workers AT delorie DOT com In order to allow my namespace std patches to work with the libstdc++ V3 wrappers, I propose the following changes. There would be a small include file that decides whether or not to use namespace std. It would look something like this: /* Macros to control use of namespace std */ #ifdef __cplusplus #if defined(_IN_C_LEGACY_) || (__GNUC__ == 2 && __GNUC_MINOR__ < 95) #undef __dj_use_namespace_std #undef __dj_namespace_std_begin #undef __dj_namespace_std_end #define __dj_namespace_std_begin #define __dj_namespace_std_end #else #define __dj_use_namespace_std #undef __dj_namespace_std_begin #undef __dj_namespace_std_end #define __dj_namespace_std_begin namespace std { #define __dj_namespace_std_end } #endif #endif /* __cplusplus */ (The macro _IN_C_LEGACY_ is used by the libstdc++ V3 wrappers. I've added a test for the GCC version here as well, since when it's this easy we may as well do it.) Any header file that needs to use namespace std would #include the above file, and would then use __dj_namespace_std_begin and __dj_namespace_std_end to open and close namespace std, and would use __dj_use_namespace_std in some situations where __cplusplus is currently used. Is this idea acceptable? If so, what should the include file be called? Stephen