[英]template bool function without <>, what does it mean?
FLIF图像库具有以下定义:
template bool flif_decode(FileIO& io, Images &images,
callback_t callback, void *user_data, int, Images &partial_images,
flif_options &, metadata_options &, FLIF_INFO* info);
我看过模板专业化,但是仍然有尖括号。 这是什么意思?
编译器通常能够在显式模板实例化中推断出模板参数,这就是事实。
请参阅[temp.explicit]( 排泄性矿井 )
如果显式实例化是针对函数或成员函数的,则声明中的unqualified-id应为template-id,或者在可以推导出所有模板参数的情况下 ,为template-name或operator-function-id 。
该标准提供了以下示例:
template void sort(Array<char>&); // argument is deduced here
在您的示例中,函数声明(也是一个定义)如下所示:
template <typename IO>
bool flif_decode(IO& io, /*etc*/) { /*...*/}
因此,当我们以后看到这样的显式实例化时:
template bool flif_decode(FileIO& io, /*etc*/);
编译器能够推断出FileIO
是您希望用于类型名typename IO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.