← Back to team overview

drizzle-discuss team mailing list archive

Re: PROPOSAL: Change to the Cursor interface


On Apr 23, 2010, at 12:37 PM, Jay Pipes wrote:

> On Fri, Apr 23, 2010 at 11:57 AM, Brian Aker <brian@xxxxxxxxxxx> wrote:
>> Hi!
>> This ties into a bigger question of how to return error/information from callers. Stewart and I spent a bit of time talking about this at the conference (though with no conclusion). The basic idea is to return an object that is minimal copy upon return (aka... no memory allocation and the hit cost is low).
> Which is precisely why I proposed using std::pair<>'s (or
> boost::tuple).  There is no copy overhead in most situations (due to
> all modern compilers implementing the return value optimization.
> Please see: http://en.wikipedia.org/wiki/Return_value_optimization).
> This is the reason that the STL's std::map<>::insert() method returns
> a std::pair<iterator, bool> as do other STL algorithms.

Sure, but map::insert() will never have a need to return more info than
what can fit in std::pair.  In your proposed design, if there is ever a need
to return more state info, your return type suddenly needs to change.
That may not ever happen, so it may be a non-issue.

As we discussed on IRC, I propose maintaining private state internal
to Cursor, but as you said, anything is better than the way it is now.