Я пытаюсь создать шаблонную функцию общего назначения, которая должна функционировать с двумя различными типами структур. Я напишу пример
struct sa {
int a;
int b;
char d;
}
struct sb {
int a;
int b;
int c;
}
template < class T>
void f_print(T & s_passed, bool s_typeB){
std::cout << s_passed.a << endl ;
std::cout << s_passed.b << endl ;
if(s_typeB == false){
std::cout << s_passed.d << endl ;
}else{
std::cout << s_passed.c << endl ;
}
}
, затем на основном:
{
struct sa str_TEST_A ;
struct sb str_TEST_B ;
f_print(str_TEST_A,false);
f_print(str_TEST_B,true);
}
теперь это краткий пример моей проблемы, когда я работаю с гораздо более сложными структурами, в любом случае, я получаю сообщение об ошибке: у 'struct sa' нет члена с именем 'd'
проблема в том, чтоКомпилятор gnu c ++ не распознал, что не все операции в функции выполняются при передаче struct sa, и d печатается только при передаче sb, как я могу это исправить, не создавая дублированную функцию 1 для каждого типа структуры?
спасибо :) Франческо