Видите, у меня есть этот код:
template<typename T=int>struct color
{
T red, green, blue;
color(T r, T g, T b)
:red(r), green(g), blue(b)
{
}
#ifdef SDL_BACKEND
template<typename R,typename S> R map(S surf)
{
return SDL_MapRGB(surf->format,red,green,blue);
}
#endif /* SDL_BACKEND */
};
, и я использую его здесь:
pro::color<int> black(0,0,0);
SDL_FillRect(screen, 0, black.map(screen));
Теперь вот ошибка, которую я получаю:
ошибка: нет подходящей функции для вызова 'pro :: color :: map (SDL_Surface * &)' |
Я не настолько опытен в шаблонах, поэтому я не видел этогоошибка раньше.В чем именно проблема?
ПРИМЕЧАНИЕ. Я не пометил это тегом «SDL», потому что ИМХО этот вопрос больше связан с шаблонами, тот факт, что я использую SDL, не имеет значения.Также я использую gcc-4.4x с -std=c++0x
.