gpt4 book ai didi

c++ - 类型 boost::functions 的空实现

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

我有这样的东西:

boost::function<void(void)> redStyle = boost::bind(colorStyle, "red");

boost::function<void(void)> blueBlinkingStyle = boost::bind(animatedStyle, "blue", BLINKING);

这是定义 nullStyler 的正确方法吗:

void nothing(){}
boost::function<void(void)> noStyle = boost::bind(nothing);

我在想我可以这样做,但是空函数抛出:

boost::function<void(void)> noStyle;

使用样式器函数的代码可以检查是否为空,而不是使用“空对象模式”。哪个更好?在我的 Detail 命名空间中有一个奇怪的无功能或检查是否为空?

最佳答案

我希望有一个空操作函数。它使意图清晰,并且使您免于检查仿函数是否为空(假设您不必因为其他原因而检查)。

请注意,您不需要调用绑定(bind)。你可以这样做:

boost::function<void(void)> noStyle = nothing;

例子:

#include <boost/function.hpp>
#include <iostream>

void hello()
{
std::cout << "hello" << std::endl;
}

int main()
{
boost::function<void(void)> f = hello;
f();
}

关于c++ - 类型 boost::functions 的空实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267914/

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