missing include guards on {bits,tr1}/shared_ptr.h

Benjamin Kosnik bkoz@redhat.com
Thu Mar 12 18:46:00 GMT 2009


> While trying to work out why shared_ptr doesn't appear in the doxygen
> docs, I realised that include/bits/shared_ptr.h and
> include/tr1/shared_ptr.h don't have any include guards.  

FWIW, I cannot figure out what is going on with the doxygen failures
for C++0x type_traits, chrono, and shared_ptr.h. I thought it might be
related to the tr1/c++0x doubling, but removing tr1 headers as a test
doesn't fix it. I tried various versions of doxygen (1.5.1,
1.5.5, 1.5.8), and all fail. Even changing user.cfg.in such that
everything is extracted (even without markup) fails. 

Don't know what is going wrong here. The only thing I can think of to
try is to just run doxygen against the one file (shared_ptr.h) and step
through it in the debugger.

> The tr1_impl/boost_shared_ptr.h file in GCC 4.3 and earlier cannot
> have include guards, because it must be possible to include it twice,
> once as C++0x and once as TR1.  That is not the case with the separate
> files, which should have include guards.

Was wondering about this. Thanks for fixing it.

-benjamin



More information about the Libstdc++ mailing list