4 messages in com.mysql.lists.plusplusRe: RELEASE: v1.7.13| From | Sent On | Attachments |
|---|---|---|
| Warren Young | 23 Aug 2004 16:36 | |
| Warren Young | 23 Aug 2004 17:51 | |
| Warren Young | 24 Aug 2004 07:19 | |
| Warren Young | 24 Aug 2004 10:20 |
| Subject: | Re: RELEASE: v1.7.13![]() |
|---|---|
| From: | Warren Young (mysq...@etr-usa.com) |
| Date: | 08/24/2004 10:20:51 AM |
| List: | com.mysql.lists.plusplus |
Bryan W. Headley wrote:
you're referring to MysqlRow::operator[](const char*), right?
Yes. There were also std::string and int overloads.
The problem comes up when you say:
bla = row[0];
Which overload does it call? You can convert 0 to all four types, so g++ rightfully said "I give up". I therefore removed three of the overloads (all but size_type, which is the only one the library itself requires) and added MysqlRow::lookup_by_name() to replace the functionality provided by the char* and string overloads.
By the way, if someone wants lookup_by_name() overloaded for std::string as well as const char*, let me know. I only stopped with const char* because that was the minimum change that would allow the examples to compile.
I should point out that this problem is most acute with 0 as the argument to operator[]. When you use a different number, you rule out the const char* overload. When you use a variable, you rule out all but one, if the variable is of the right type. Therefore, it's quite possible for the old code to compile on recent g++'s without this change, depending on how you actually used the library. It happens that the SQLSS code uses bare constants, including 0, so all custom SQL macro users hit this problem. If you never built the examples and you don't use the SQLSS stuff, you might never have seen this problem.
- NAME##_cus_value_list (const NAME *o, cchar *d, Manip m ,vector<bool>) + NAME##_cus_value_list (const NAME *o, cchar *d, Manip m ,vector<bool> *i)
That's indeed the change I applied to my working copy. It will be in version .14, which may be out soon. I'm working on other things which may also go into that release, and I don't know how long it will take.




