You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by Eric Lemings <Er...@roguewave.com> on 2008/05/06 17:25:19 UTC
terminate.h config test header
Try this:
cd $SRCDIR/etc/config/src && grep -2 'terminate\.h' *
Note that every #include for this header is wrapped by the same #if
directives. Wouldn't it make sense to move all of these nested if
directives into the header itself and just always include the header?
For example:
file etc/config/src/terminate.h:
...
#include "config.h"
#ifndef _RWSTD_NO_HONOR_STD
# ifdef _RWSTD_NO_STD_TERMINATE
namespace std {
void terminate ()
{
...
}
} // namespace std
# endif // _RWSTD_NO_STD_TERMINATE
#endif // _RWSTD_NO_HONOR_STD
Just a thought.
Brad.
Re: terminate.h config test header
Posted by Martin Sebor <se...@roguewave.com>.
Travis Vitek wrote:
>
>
>> Eric Lemings wrote:
>>
>> Try this:
>>
>> cd $SRCDIR/etc/config/src && grep -2 'terminate\.h' *
>>
>> Note that every #include for this header is wrapped by the same #if
>> directives. Wouldn't it make sense to move all of these nested if
>> directives into the header itself and just always include the header?
>>
>> For example:
>>
>> file etc/config/src/terminate.h:
>> ...
>> #include "config.h"
>>
>> #ifndef _RWSTD_NO_HONOR_STD
>> # ifdef _RWSTD_NO_STD_TERMINATE
>>
>> namespace std {
>>
>> void terminate ()
>> {
>> ...
>> }
>>
>> } // namespace std
>>
>> # endif // _RWSTD_NO_STD_TERMINATE
>> #endif // _RWSTD_NO_HONOR_STD
>>
>> Just a thought.
>>
>> Brad.
>>
>
> Normally this would be the right thing to do, but the build system
> actually uses the #ifndef you see there to establish a dependency on
> other config tests (see GNUmakefile.cfg). In the above example, this
> test depends on the config tests HONOR_STD.cpp and STD_TERMINATE.cpp
> being run before this particular test is compiled.
Right. See http://issues.apache.org/jira/browse/STDCXX-674
Martin
>
> If this were to change it would require a small change to the build
> infrastructure. I'd prefer to see a list of dependencies written as
> comments near the top of the file instead, but that is just me.
RE: terminate.h config test header
Posted by Travis Vitek <Tr...@roguewave.com>.
>Eric Lemings wrote:
>
>Try this:
>
> cd $SRCDIR/etc/config/src && grep -2 'terminate\.h' *
>
>Note that every #include for this header is wrapped by the same #if
>directives. Wouldn't it make sense to move all of these nested if
>directives into the header itself and just always include the header?
>
>For example:
>
> file etc/config/src/terminate.h:
> ...
> #include "config.h"
>
> #ifndef _RWSTD_NO_HONOR_STD
> # ifdef _RWSTD_NO_STD_TERMINATE
>
> namespace std {
>
> void terminate ()
> {
> ...
> }
>
> } // namespace std
>
> # endif // _RWSTD_NO_STD_TERMINATE
> #endif // _RWSTD_NO_HONOR_STD
>
>Just a thought.
>
>Brad.
>
Normally this would be the right thing to do, but the build system
actually uses the #ifndef you see there to establish a dependency on
other config tests (see GNUmakefile.cfg). In the above example, this
test depends on the config tests HONOR_STD.cpp and STD_TERMINATE.cpp
being run before this particular test is compiled.
If this were to change it would require a small change to the build
infrastructure. I'd prefer to see a list of dependencies written as
comments near the top of the file instead, but that is just me.