gpt4 book ai didi

c++ - 只传递第二个模板参数的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:01 24 4
gpt4 key购买 nike

所以我有一个模板函数,它有一个默认的第二个nd 参数。可以推导出第一个st 参数,所以类似:

template <typename F, typename S = int>
void foo(const F param)

这在一般情况下工作正常,我会调用 foo(bar) .但是在我想指定第二个参数的情况下,我不能这样做:foo<char>(bar) ,因为 char被视为F .显然情况并非如此,因为 bar不是 char , 所以 F应该是可推导的。

有没有一种方法可以让我在这里只传递一个适用于 S 的模板参数? , 还有F被推导,依然默认S在一般情况下?

最佳答案

只需重新排序模板参数:

template <typename S = int, typename F>
void foo(const F param);

模板可以在任何地方有默认值。最后,应提供、默认或推导所有模板参数。

关于c++ - 只传递第二个模板参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54694065/

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