On Fri, Apr 26, 2013 at 12:32:40PM +0200, Paolo Carlini wrote: > 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?
I guess Ulrich added this with the expectation that gets will be also removed from C++1y. Has there been any discussions regarding that in the WG already? Jakub