On Sat, Sep 17, 2005 at 01:49:45PM -0400, pps wrote:
> The largest set of non-optional exceptions are those from the
> Standard C++ Library. For instance, if your code said "row[21]" on a row
> containing only 5 fields, the std::vector underlying the row object will
> throw an exception. (It will, that is, if it conforms to the standard.)
> You might consider wrapping your program's main loop in a try block
> catching std::exceptions, just in case you trigger one of these exceptions.
> =====================
>
>
> And this isn't true! operator[] doesn't have to check the size (if it
> conforms to the standard). Hopefully the code in the library doesn't
> rely on that. (method .at() exist for size checking)
> please verify and update the docs in order not to confuse people
The docs are correct, although misleading without a knowledge of the code.
mysql++'s row object calls std::vector's at() from inside its own
operator[], so the standard library will indeed throw an execption.
Only row::raw_data() uses std::vector::operator[].
- Chris
--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:
http://lists.mysql.com/plusplus?unsub=gcdmc-plusplus@xxxxxxxxxxx
|