here - Chara - University of Illinois at Urbana-Champaign
here - Chara - University of Illinois at Urbana-Champaign
here - Chara - University of Illinois at Urbana-Champaign
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Lecture<br />
04—Templ<strong>at</strong>e<br />
P<strong>at</strong>terns I<br />
Chase Geigle<br />
Announcements<br />
Templ<strong>at</strong>e<br />
Specializ<strong>at</strong>ion<br />
Partial<br />
Templ<strong>at</strong>e<br />
Specializ<strong>at</strong>ion<br />
Templ<strong>at</strong>e<br />
Templ<strong>at</strong>e<br />
Parameters<br />
Next Time<br />
Original Implement<strong>at</strong>ion<br />
#include <br />
templ<strong>at</strong>e <br />
class vector {<br />
public:<br />
// purposefully not doing reference <strong>here</strong>...<br />
T oper<strong>at</strong>or[]( size_t i ) {<br />
return d<strong>at</strong>a_[ i ];<br />
}<br />
// other things<br />
priv<strong>at</strong>e:<br />
T * d<strong>at</strong>a_;<br />
};<br />
If T = bool, we are wasting an entire byte on th<strong>at</strong><br />
boolean value (which can, in theory, be represented as a<br />
single bit)<br />
We want to special case, or specialize on T = bool to<br />
change the default behavior <strong>of</strong> the class!