Перейти к содержанию
    

Шаблоны с++

код

typedef struct MySlideItem
{
  int y;
}MySlideItem;

MySlideItem slide1, slide2, slide3, slide4; 

void removeF(MySlideItem *item )
{
	item->y = 23;
}

void f1(int a)
{
  removeF(&slide1);
}

void f2(int a)
{
  removeF(&slide1);
}

void f3(int a)
{
  removeF(&slide1);
}

void f4(int a)
{
  removeF(&slide1);
}

экземпляров структуры MySlideItem 100500. Соответственно однотипных функций типа f1(int) - также 100500.

от акына простыней кода должен спасти шаблон.

typedef struct MySlideItem
{
  int y;
}MySlideItem;

MySlideItem slide1, slide2, slide3, slide4; 

void removeF(MySlideItem *item )
{
	item->y = 23;
}

template<MySlideItem BASE>
void f1(int a)
{
  removeF(&BASE);
}

int main()
{
  f1<slide1>(0);
}

невзлетело. вроде как в аргументы шаблона можно передать пользовательский тип. Что не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

разобрался. в шаблон нельзя передавать не константу, которую нельзя вычислить на этапе компиляции. можно тему удалить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...