On 12/10/2015 03:09 AM, Scott Kostyshak wrote: > On Wed, Dec 09, 2015 at 10:10:42AM +0100, Jean-Marc Lasgouttes wrote: >> Le 09/12/2015 06:54, Scott Kostyshak a écrit : >>> Regarding the following code: >>> >>> ----- >>> void Text::selectWord(Cursor & cur, word_location loc) >>> { >>> LBUFERR(this == cur.text()); >>> CursorSlice from = cur.top(); >>> CursorSlice to = cur.top(); >>> getWord(from, to, loc); >>> ----- >>> >>> It is not easy to know whether "to" and "from" are equal to each other >>> because >>> cur.top() might return something different the second time. For readability >>> purposes, I would prefer either >> I do not really see why this confuses you actually. > Well, since I have a bad memory I always try to write code imagining > "what if I did not have any inside information". A newcommer does not > know that the initializations of 'to' and 'from' are useless (neither > would he under my proposal).
And it's even more confusing because the initiation of from DOES matter, whereas that of to does not matter. > A newcommer also does not know what top() > does. Maybe it pops off something, and thus changes the underlying list > so that the second call to it returns something different. My proposal > at least clarifies this. > > I don't care that much. I was just curious what others thought. This was > a poor example. I should have cut off the "getWord" call in my quote so > as just to focus on what the reader would think of 'from' and 'to'. At the very least, if the value of to is irrelevant, then it should just be: CursorSlice to; Then it's not potentially misleading as to why we're passing the same value twice. Richard