Bryan W. Headley wrote:
> Isn't VC++ a major reason why we hold back on putting
> wholesale changes in,
No, it's because I don't want to break the API too badly for existing
users. Indeed, if the strstream -> stringstream change breaks the API,
I may consider holding off on it, or at least making it optional.
I believe MySQL++ should be stable at this point in its life, not
changing out from under people constantly. There are times where the
API must be broken, like with the MysqlRow::operator[] overload. That's
not a license to break it any time it feels nice, though.
> because they never update their STL?
That was only a problem with VC++6. They got the Standard C++ religion
the release after that.
Anyway, stringstream is in VC++7 a.k.a. Visual Studio .NET a.k.a. Visual
Studio 2002. That's the earliest release I have any hope of MySQL++
building on, so it doesn't matter what happened with VC++6.
> template <class Manip> class stock_cus_value_list
That's odd... that class isn't used internally by the library, and it
isn't used in any of the examples. I wonder how many other hidden
features this thing has?
> stock_cus_value_list (const stock *o, cchar *d, Manip m ,vector<bool>)
> : obj(o), include(*i*), del_vector(false), delem(d), manip(m)
I assume include should be assigned the vector<bool> argument, from
studying the rest of the code. It's hard to guess since there's no code
in the library that actually uses the class...
This also explains why we're seeing the error only now. Older g++
versions tended to ignore bogus code in templates if the template was
never instantiated. g++ validates more things now, even when they're
not used.