gpt4 book ai didi

c++ - 如何处理模板仿函数的默认值

转载 作者:太空狗 更新时间:2023-10-29 19:39:45 27 4
gpt4 key购买 nike

给定这样一个函数:

template<typename functor>
void foo(functor const& f)
{
if (f)
f(1, 2);
}

我希望能够分配一个默认值,其中 f 可以设置为类似于 NULL 的值。此外,对空函数进行虚假调用也可能就足够了。有什么我可以使用(来自标准或 boost-library)而无需自己创建这样的东西吗?

最佳答案

使用空仿函数并用作默认模板参数。你不能使用像 NULL 这样的东西,因为你没有指针:

class X
{
void operator()(...) {}
};

template <typename functor = X>
void foo(functor const& f = X())
{
f(...);
}

关于c++ - 如何处理模板仿函数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7725932/

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