Re: Why does -std=c++11 hide certain function calls
- Date: Wed, 5 Sep 2018 12:36:25 -0700
- From: John Selbie <jselbie@xxxxxxxxx>
- Subject: Re: Why does -std=c++11 hide certain function calls
Thanks for the response.
But why is getaddrinfo (and its associated struct types and flag values)
considered a "language extension" and hidden via the __POSIX_VISIBILE
define when other function declarations in netdb.h (such as getservbyname)
I don't believe C++ has any formal support for networking. So it's
surprising to see one networking function hidden "because its an
extension", but the other very related functions are not. Can you elaborate
on the decision process that makes it this way? I honestly don't see how a
header file qualifies as a language extension, but instead just see it as
the interface for a pre-compiled library.
Is it because modern C++ is defined to support older POSIX functions, but
not newer ones? Where is that in the standard?
As I said before, I'm wanting to be educated on this, because it could
influence how I view the writing and building of portable code now and in
the future. But saying, "everywhere else but here is wrong" and because ",
On Wed, Sep 5, 2018 at 11:46 AM Hans-Bernhard Bröker <HBBroeker@xxxxxxxxxxx>
> Am 05.09.2018 um 07:55 schrieb John Selbie:
> > With this: g++ foo.cpp -c -std=c++11
> > It compiles fine everywhere else, except CygWin. Output on Cygwin:
> I'm afraid that may mean everywhere else is wrong.
> > Yes, switching to -std=gnu++11 or adding -D_DEFAULT_SOURCE to the
> > line line works.
> > But I don't understand why the need to enforce these extensions to get
> > access to some of the most common unix libraries?
> Because that's what std=c++11 is meant and documented to do. It turns
> off all extensions to the standard language. And yes, that does include
> extensions to the standard libary, up to and including POSIX-specific
> For what you want to do, std=c++11 is simply the wrong setting.
> Problem reports: http://cygwin.com/problems.html
> FAQ: http://cygwin.com/faq/
> Documentation: http://cygwin.com/docs.html
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple