Re: Returning Nulls in Templates
On Mon, 21 Mar 2011 10:51:26 -0700, Noah Roberts wrote:
On 3/21/2011 10:01 AM, Ruben Safir wrote:
On Sun, 20 Mar 2011 13:53:17 +0000, Leigh Johnston wrote:
On 20/03/2011 09:17, Alf P. Steinbach /Usenet wrote:
* Ruben Safir, on 20.03.2011 06:37:
inline unk value();
It's not necessary to designate the method as 'inline', since it's in
a template.
On the other hand you should have a 'const' at the end there.
inline unk& value_ref();
inline void value(unk);
When you have exposed a member in all ways possible, and that's
roughly what you have done here, what's the point of having that
member non-'private'?
In this case, nothing.
Remove the accessor and modifier stuff. Just make that value
'public'.
I disagree; instead I would do:
const unk& value() const;
unk& value();
void set_value(const unk&);
/Leigh
If I define value() as a const returning a const reference, then I
can't change the value when using the operator[] and I'd think defeats
the purpose of making it a reference in the first place ..
mylist[2] = mylust[3];
I broke value() into two different methods, one returning the reference
unk Node::value() const{
return value_;
}
unk& Node::value_ref(){
return value_;
}
In case you are not aware, you can override based on const-ness. For
example:
unk Node::value() const { return value_; } unk& Node::value() { return
value_; }
Actually, I didn't know that! That is essentially overloading on the
return type. I didn't know that was possible at all.
Ruben