definitions2.hpp

The following code example is taken from the book
C++ Templates - The Complete Guide, 2nd Edition
by David Vandevoorde, Nicolai M. Josuttis, and Douglas Gregor,
Addison-Wesley, 2017
© Copyright David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor 2017


class Collection {
  public:
    template<typename T>        // an in-class member class template definition
    class Node {
        //...
    };

    template<typename T>        // an in-class (and therefore implicitly inline)
    T* alloc() {                // member function template definition
        //...
    }

    template<typename T>        // a member variable template (since C++14)
     static T zero = 0;

    template<typename T>        // a member alias template
     using NodePtr = Node<T>*;
};