This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] Define __cplusplus == 201300L for -std=c++1y


On 04/24/2013 08:20 PM, Jason Merrill wrote:
On 04/24/2013 02:02 PM, Paolo Carlini wrote:
+#if __cplusplus < 201300L

Don't test for this value.  Use <= 201103L instead.

OK with that change.
Thanks Jason.

Today I'm noticing an issue with the underlying <stdio> from glibc, which makes our <cstdio> unusable. It does have:

#if !defined __USE_ISOC11 \
    || (defined __cplusplus && __cplusplus <= 201103L)
/* Get a newline-terminated string from stdin, removing the newline.
   DO NOT USE THIS FUNCTION!!  There is no limit on how much it will read.

   The function has been officially removed in ISO C11.  This opportunity
   is used to also remove it from the GNU feature list.  It is now only
   available when explicitly using an old ISO C, Unix, or POSIX standard.
   GCC defines _GNU_SOURCE when building C++ code and the function is still
   in C++11, so it is also available for C++.

   This function is a possible cancellation point and therefore not
   marked with __THROW.  */
extern char *gets (char *__s) __wur __attribute_deprecated__;

I don't think the header should check __cplusplus <= 201103L like that. Jakub, Jason, what do you think?

Thanks,
Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]