我有一个构造函数原型,如下所示:
template <typename type_position> window(
const int size[2],
const char* caption="Window", const SDL_Surface* icon=NULL,
bool fullscreen=false, bool vsync=true, bool resizable=false, int multisample=0,
type_position position=type_position(0)
)
然后我想构建一个实例:
new window(screen_size,"My Window",NULL,fullscreen);
问题(我假设)是T
无法明确指定的(即,它可以是int
orlong
或short
等)。我得到错误:
错误 C2660:“窗口”:函数不接受 4 个参数
然后我尝试指定类型:
new window<int>(screen_size,"My Window",NULL,fullscreen);
但这不起作用:
错误 C2512:“窗口”:没有适当的默认构造函数可用
错误 C2062:类型“int”意外
我做了一些研究,我能得到的最接近的问题是“ C++ 模板函数默认值”这个问题,除了在我的例子中,模板参数可以从第一个参数中推断出来。
那么,我是卡住了还是缺少了什么?