gpt4 book ai didi

c++ - 模板参数值中的 Lambda

转载 作者:搜寻专家 更新时间:2023-10-31 01:16:33 24 4
gpt4 key购买 nike

是否允许使用 lambda 函数作为模板参数的默认值?有问题的代码片段是:

template <typename K, typename E, typename C = [](const K& l, const K& r) { return (l < r); }>
class FooBar
{
typedef C compare_fn;
};

如果不是,为什么会这样,除了指向函数的指针之外,什么是最可行的替代方案? TIA。

最佳答案

没有。 lambda 是对象,而不是类型。

解决这个问题的一种方法是使用命名类,如

template<typename K, typename E, typename C = std::less<K>>
class FooBar
{
typedef C compare_fn;
};

关于c++ - 模板参数值中的 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027316/

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