Mam zestaw funkcji, które działają na klasach szablonowych, ale nie polegają na szablonach części klasy.Funkcja C++ dla struct bez względu na typy szablonów
Templowanie funkcji i pozwalanie jej na dedukcję typów będzie działało, ale zostanie skompilowane do wielu funkcji.
#include <iostream>
template<typename T>
struct MyStruct {
int a;
T b;
};
bool isLess(MyStruct& lhs, MyStruct& rhs) {
return lhs.a < rhs.a;
}
int main(int argc, char const *argv[])
{
MyStruct<int> x {123, 456};
MyStruct<int> y {789, 123};
std::cout << isLess(x, y) << std::endl;
return 0;
}
Czy istnieje sposób, aby to osiągnąć?
Jeśli zdefiniujesz funkcję składową w deklaracji klasy, nie musisz uwzględniać żadnych parametrów szablonu, jeśli nie ulegną one zmianie. –