Listing 7: An alternate prototyping policy

template<typename T>
class PFPlainCopies
{
public:
  typedef T stored_type;
  typedef T& reference_type;
  typedef T cloning_result_type;

  static cloning_result_type Clone(reference_type prototype)
  { return T(prototype); }

  template<typename It>
  static void DestroyProtoTypes(It beg, It end) {}

};
— End of Listing —