// void print(int value) {
// Serial.println(value);
// }
// void print(double value) {
// Serial.println(value);
// }
// template<typename T>
// void print(T value) {
// Serial.println(value);
// }
// template<typename T,typename Y,typename S>
// S add(T value1, Y value2) {
// return value1+value2;
// }
template<class T>
class Caluclator {
public:
T a, b;
Caluclator(T a_, T b_) : a(a_), b(b_) {}
T Add();
};
template<class T>
T Caluclator<T>::Add() {
return a + b;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Caluclator<int> a(5, 10);
Serial.println(a.Add());
Caluclator<double> b(5.5, 10.5);
Serial.println(b.Add());
Caluclator<String> c("Lonely ", "Binary");
Serial.println(c.Add());
//int + double
//Serial.println(add<int,double,double>(5,10.5));
//int + double
//Serial.println(add<int,double,int>(5,10.5));
// //int
// Serial.println(add<int>(5,10));
// //double
// Serial.println(add<double>(5.5,10.5));
// //String
// Serial.println(add<String>("Lonely ","Binary"));
// int a = 100;
// print<int>(a);
// double b = 5.5;
// print<double>(b);
// String c="Lonely Binary";
// print<String>(c);
}
void loop() {
delay(10); // this speeds up the simulation
}