cpp coding template code example

Example 1: c++ class template

#include <vector>

// This is your own template
// T it's just a type
template <class T1, class T2, typename T3, typename T4 = int>
class MyClass
{
  public:
  	MyClass() { }
  
  private:
  	T1 data; 		// For example this data variable is T type
  	T2 anotherData;	// Actually you can name it as you wish but
  	T3 variable;	// for convenience you should name it T
}

int main(int argc, char **argv)
{
  std::vector<int> array(10);
  //          ^^^
  // This is a template in std library
  
  MyClass<int> object();
  // This is how it works with your class, just a template for type
  // < > angle brackets means "choose" any type you want
  // But it isn't necessary should work, because of some reasons
  // For example you need a type that do not supporting with class
  return (0);
}

Example 2: templates of templates c++

namespace std {
  template<typename t> struct hash<MyClass<t>>
  {
  	size_t operator() (const MyClass<t>& c) const;
  }
}

// You can also do things like

template<template<typename t> class type> func_name<type<t>>();

Tags:

Cpp Example