繁体   English   中英

没有<>的模板布尔函数,是什么意思?

[英]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-nameoperator-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM