logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: What's that error in tutorial?!?: msg#00063

Subject: Re: What's that error in tutorial?!?
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




<Prev in Thread] Current Thread [Next in Thread>