C++ 使用模板<&燃气轮机;争论中

C++ 使用模板<&燃气轮机;争论中,c++,templates,C++,Templates,我习惯于完全专用模板的模板语法: template<typename T> struct S {}; template<> struct S<int> {}; // Fully specialized 模板 结构S{}; 模板 结构S{};//完全专业化 但我不知道我可以用它作为论据: void fn(std::function<> lambda){ } int main() { fn([](){ std::cout <<

我习惯于完全专用模板的模板语法:

template<typename T>
struct S {};

template<>
struct S<int> {}; // Fully specialized
模板
结构S{};
模板
结构S{};//完全专业化
但我不知道我可以用它作为论据:

void fn(std::function<> lambda){
}

int main() {
  fn([](){ std::cout << "Hello"; });
}
void fn(标准::函数lambda){
}
int main(){

FN([]){STD::CUT< P>出现(参见)C++标准不提供完全的专门版本的<代码> STD::函数< /COD>,即默认值,如“代码>签名=空()/代码>。因此,如果编译了代码,则所使用的C++标准库不完全符合标准。应提交错误报告。< / P>“一个
std::function
实例化,其所有参数均为默认值"。为什么
std::function
有我目前正在查找的默认参数。@Quentin认为它没有。它编译了吗?@Walter确实。我觉得这看起来像是一个漏洞百出的库实现。我不认为这会使实现不符合要求,只是对用户有点不友好。@Quentin我建议提交一个bug报告,让该库的作者检查并决定它是否真的是我们想要的。
NOTABUG
s是无害的,除非它们泛滥。@vee是的,我完全同意。只是在词汇上吹毛求疵:)