always a pointer.)
</p>
<p>In his book
- <a href="http://cseng.aw.com/bookdetail.qry?ISBN=0-201-92488-9&ptype=0"><em>Effective C++</em></a>,
+ <a href="http://www.awprofessional.com/titles/0-201-92488-9/"><em>Effective C++</em></a>,
Scott Meyers points out that the best way to solve this problem is to
not overload on pointer-vs-integer types to begin with. He also
offers a way to make your own magic NULL that will match pointers
} NULL; // and whose name is NULL
</pre>
<p>(Cribbed from the published version of
- <a href="http://www.awlonline.com/cseng/meyerscddemo/">the
+ <a href="http://www.awprofessional.com/titles/0-201-31015-5/">the
Effective C++ CD</a>, reproduced here with permission.)
</p>
<p>If you aren't using g++ (why?), but you do have a compiler which
print this stuff, it prompted him to run this code through current
compilers to see what the state of the art is with respect to member
template functions. He posted
- <a href="http://www.deja.com/threadmsg_md.xp?AN=644660779.1&CONTEXT=964036823.871301239">an
+ <a href="http://groups.google.com/groups?oi=djq&selm=an_644660779">an
article to Usenet</a> after discovering that the code above is not
valid! Even though it has no data members, it still needs a
user-defined constructor (which means that the class needs a type name