separate compilation of class templates if we implement class template entirely in its declarationthen as we have seenthere is very little syntax many class templates arein factimplemented this way because compiler support for separate compilation of templates historically has been weak and platform specific thusin many casesthe entire class with its implementation is placed in single header file popular implementations of the standard library follow this strategy to implement class templates figure shows the declaration for the memorycell class template this part isof coursesimple enoughsince it is just subset of the entire class template that we have already seen for the implementationwe have collection of function templates this means that each function must include the template declaration andwhen using the scope operatorthe name of the class must be instantiated with the template argument thus in figure the name of the class is memorycell although the syntax seems innocuous enoughit can get quite cumbersome for instanceto define operatorin the specification requires no extra baggage in the implementationwe would have the brutal code: template const memorycell memorycell::operatorconst memorycell rhs ifthis !&rhs storedvalue rhs storedvaluereturn *this note that some occurrences of memorycell (those after ::can be omittedwith the compiler interpreting memorycell as memorycell