https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67195

--- Comment #5 from Jeffrey Walton <noloader at gmail dot com> ---
(In reply to Andrew Pinski from comment #3)
> (In reply to Jeffrey Walton from comment #2)
> > > 
> > > $ uname -a
> > > Linux localhost.localdomain 4.1.3-201.fc22.x86_64 #1 SMP Wed Jul 29 
> > > 19:50:22
> > > UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
> > > 
> > > $ g++ --version
> > > g++ (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)
> > > Copyright (C) 2015 Free Software Foundation, Inc
> > 
> > (In reply to Jonathan Wakely from comment #1)
> > > The library macro is defined by the library, not the compiler. You didn't
> > > include any library headers.
> > 
> > Thanks Jonathon.
> > 
> > The documentation does not state that requirement. Perhaps this is a
> > documentation bug?
> 
> I think the document assumes that since this is the library docs rather than
> the compiler or preprocessor doc n

Yeah, I have the problem of "literal readings" in real life, too.

When I parsed the page on macros, I found it to be an interesting
implementation detail. And I thought it was useful to know cpp or g++ fetched
the macro from c++config.h. (A related factoid is LLVM uses <ciso646>).

But because I was not explicitly told to include c++config.h or another
standard library header for the define, I did not make the leap it was a
requirement.

For me (naively), 'cpp' or 'g++ -dM' provide the preporcessor macros used to
compile a source file, and the way they are delivered to me is
indistinguishable from magic.

Reply via email to