当前位置:  开发笔记 > 编程语言 > 正文

无法推导出模板参数'N'

如何解决《无法推导出模板参数'N'》经验,为你挑选了1个好方法。

我试图将其减少到最低限度:

#include 

template 
void f(int, std::array const & =
       std::array()) {
}


int main() {
    f(10);
}

array_test.cpp:4:6:注意:模板参数推断/替换失败:array_test.cpp:10:9:注意:无法推导出模板参数'N'f(10);

为什么这会失败?我不明白:它应该可以从默认参数中推断出来.我需要一个解决方法.



1> Holt..:

您需要为N数组赋予默认值,而不是数组:

template 
void f(int, std::array const & =
       std::array()) {

}

至于为什么N不能从默认值中推导出来,请参阅为什么编译器不能从默认参数中推导出模板类型?.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有