>
>> + To get bakefile to create the makefiles necessary for each +
>> platform, simply run bakefile_gen in the project root.
>
> No, this isn't right.
>
> First off, bakefile_gen shouldn't ever be run directly. Use the
> rebake or bootstrap wrapper scripts instead.
>
> What problem are you trying to solve here? Is it the "I just checked
> out from svn and it doesn't work" case? If so, that's handled by
> running the bootstrap script, which is already covered in the HACKERS
> file.
Sorry, my mistake. When I first downloaded and built MySQL++ a while
ago there was a different procedure to build the project file, I'd never
used bakefile before so I did a quick Google search and the bakefile_gen
script seemed to do everything required.
> I thought we shot this one down because it's technically illegal in
> C++. It's not guaranteed that sbuffer_ is initialized before the base
> class ctors are called. It may work on current compilers, but what
> about the future?
Yes, I'm not entirely sure of the best way. The reason I suggested this
was:
"Having trawled through the VC++ and gcc std lib source code a bit
more, I think this might be the better solution. Mainly because in the
_Uninitialised::_NoInit constructor in VC++ it calls
ios_base::_Addstd(this) whereas, unless you specify a second param of
true in the other constructor, it doesn't. Unfortunately, I have no
idea what _Addstd does, except that it's "special handling for standard
streams". Also, taking this approach it's the same across platforms,
even if it does rely on all implementations doing nothing with the
pointer you pass in, except for storing it."
Perhaps it's better to leave the current source as it is, and consider
this patch archived in case there's ever a problem with the "special
handling"?
Cheers,
Matt.