gpt4 book ai didi

c++ - 为什么默认参数在模板函数中不起作用?

转载 作者:行者123 更新时间:2023-12-05 09:32:23 27 4
gpt4 key购买 nike

struct A {};

template<typename T>
void f(int n, T m = 3.14159)
{}

int main()
{
f(8, A{}); // ok
f(8); // error: no matching function for call to 'f'
}

参见 online demo

为什么默认参数在模板函数中不起作用?


编辑:我也试过跟随,想知道为什么它不起作用。

void g(int, auto = 3.14159)
{}

最佳答案

默认函数参数不影响模板参数推导。

您还需要模板参数的默认参数:typename T = double


至于void g(int, auto = 3.14159),好像没办法修复了。

关于c++ - 为什么默认参数在模板函数中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68040354/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com