Search⌘ K
AI Features

- Examples

Explore detailed examples of C++ templates covering type parameters with type identification, non-type parameters using std::array and lambdas, and template-template parameters with container classes. Learn how to use these to write flexible and reusable code.

Example 1: Type Parameter

C++
// templateTypeParameter.cpp
#include <iostream>
#include <typeinfo>
class Account{
public:
explicit Account(double amt): balance(amt){}
private:
double balance;
};
union WithString{
std::string s;
int i;
WithString():s("hello"){}
~WithString(){}
};
template <typename T>
class ClassTemplate{
public:
ClassTemplate(){
std::cout << "typeid(T).name(): " << typeid(T).name() << std::endl;
}
};
int main(){
std::cout << std::endl;
ClassTemplate<int> clTempInt;
ClassTemplate<double> clTempDouble;
ClassTemplate<std::string> clTempString;
ClassTemplate<Account> clTempAccount;
ClassTemplate<WithString> clTempWithString;
std::cout << std::endl;
}

Explanation

In the above code, we are identifying the type of different data types that we have passed in the parameter list. We can identify the type of variable passed to the function by using the keyword typeid in line 25. If we pass string or ...