Пример:
template<typename T> int funcExample(int x, int y) { T s; s.a = x; s.b = y; return s.a + s.b; }
struct Foo{
int a;
int b;
};
#define Bar Foo
int main()
{
int absum = funcExample<Foo>(1, 2);
std::cout << "sum: " << absum << "\n";
absum = funcExample<Bar>(3, 4);
std::cout << "sum: " << absum << "\n";
}
Дело в том, что у меня много всяких Foo, Bar и т.д. в целях читаемости кода. Они совершенно одинаковые по виду, но разные по использованию.
Либо я ща сделаю нечитаемый код (ну ладно, с комментариями, что вот это - это на самом деле то). Либо есть какое-то решение, которого я не знаю. С указателями какими-нибудь, например.