C++ recap: Templates
Function Templates
#include <iostream>
template <typename T>
T max (T x, T y)
{
return (x > y) ? x : y;
}
int main() {
std::cout << max(10, 20) << std::endl;
std::cout << max('a', 'y') << std::endl;
return 0;
}
Template Classes
#include <iostream>
template <typename T>
class Adder
{
public:
Adder();
T add (T x, T y);
};
template <typename T> Adder<T>::Adder() {
// constructor here
}
template <typename T> T Adder<T>::add(T x, T y) {
return x + y;
}
int main() {
Adder<double> d;
std::cout << d.add (1.11, 1.11) << std::endl;
Adder<std::string> s;
std::cout << s.add("hello ", "world") << std::endl;
return 0;
}