#include <iostream>
template <typename T>
T Add(T a, T b) {
return a + b;
}
int main()
{
std::cout << Add(10, 20) << std::endl;
std::cout << Add(1.1, 2.2) << std::endl;
return 0;
}
#include <iostream>
template <typename T>
T func(T a, T b) {
std::cout << "type: T" << std::endl;
return a + b;
}
template <>
int func<int>(int a, int b) {
std::cout << "type: <int>" << std::endl;
return a + b;
}
int main()
{
std::cout << func(10, 20) << std::endl;
std::cout << func(10.5, 20.5) << std::endl;
std::cout << func<double>(10.1, 20.2) << std::endl;
std::cout << func<int>(100, 10) << std::endl;
return 0;
}
#include <iostream>
using namespace std;
template <typename T, typename T2>
void func(T a, T2 b) {
cout << a << endl;
cout << b << endl;
}
int main()
{
func(10, 3.14);
func("Template", 3.14);
func<const char*, double>("Hello", 3.141592);
return 0;
}