No additional progress on smoke test issues.  I'm still uncertain
where to go next in that regard; particularly with BrowserUk's issue.

Dev version 0.33_003 includes all the patches of 0.33_002.

The only change is this:

Once we detect whether the compiler prefers new style or old style
headers, we're able to infer also whether namespaces are supported.
With those two pieces of information, the following two definitions
are created:

#define __INLINE_CPP_STANDARD_HEADERS    1
#define __INLINE_CPP_NAMESPACE_STD          1

This will assist users in writing code portably.  By testing these
definitions, a user may choose to include, for example, <string>, or
<string.h>, or whether or not to use the "using namespace std"
directive.  Here's an example:

use Inline CPP => 'DATA'

greet();

__DATA__
__CPP__

#ifdef __INLINE_CPP_STANDARD_HEADERS
#include <string>
#else
#include <string.h>
#endif

#ifdef __INLINE_CPP_NAMESPACE_STD
using namespace std;
#endif

void greet() {
    string mygreeting = "Hello world!\n";
    cout << mygreeting;
}

// End of CPP

Without testing those definitions it would be virtually impossible to
write the code above in a way that is compatible with both
pre-Standard and ANSI Standard C++ compilers.

The documentation has a new section added to it discussing this
portability issue, and how to use the definitions to overcome it.

As mentioned in the POD, the __INLINE_CPP_.... definitions are placed
ahead of any other AUTO_INCLUDEs.  That way, a user can easily #undef
them before any other includes.  I don't know why that last feature
would be helpful, but it may have some merit in testing.

Dave

-- 

David Oswald
daosw...@gmail.com

Reply via email to