- Examples
In this lesson, we will look at some examples for template specialization.
We'll cover the following...
Example 1
Press + to interact
// TemplateSpecialization.cpp#include <iostream>class Account{public:explicit Account(double b): balance(b){}double getBalance() const {return balance;}private:double balance;};template <typename T, int Line, int Column>class Matrix{std::string getName() const { return "Primary Template"; }};template <typename T>class Matrix<T,3,3>{std::string name{"Partial Specialization"};};template <>class Matrix<int,3,3>{};template<typename T>bool isSmaller(T fir, T sec){return fir < sec;}template <>bool isSmaller<Account>(Account fir, Account sec){return fir.getBalance() < sec.getBalance();}int main(){std::cout << std::boolalpha << std::endl;Matrix<double,3,4> primaryM;Matrix<double,3,3> partialM;Matrix<int,3,3> fullM;std::cout << "isSmaller(3,4): " << isSmaller(3,4) << std::endl;std::cout << "isSmaller(Account(100.0),Account(200.0)): "<< isSmaller(Account(100.0),Account(200.0) ) << std::endl;std::cout << std::endl;}
Explanation
In the above code, we are modifying the example that we have used in template arguments example.
-
Primary ...
Access this course and 1400+ top-rated courses and projects.