gpt4 book ai didi

c++ - 有没有办法使用 C++17 折叠表达式来实现它?

转载 作者:行者123 更新时间:2023-12-02 16:16:57 25 4
gpt4 key购买 nike

假设我有这个模板类。

template <typename... TMessageHandler>
class message_handler_set
{
public:

static bool call_handler(const MessageType& command)
{
// Call each TMessageHandler type's 'call_handler' and return the OR of the returns.
}
};

我希望能够为每个 TMessageHandler 类型调用静态 call_handler 并返回返回值的 OR。对于三种消息处理程序类型,代码将等效于此...

template <typename TMessageHandler1, typename TMessageHandler2, typename TMessageHandler3>
class message_handler_set
{
public:

static bool call_handler(const MessageType& command)
{
return TMessageHandler1::call_handler(command) ||
TMessageHandler2::call_handler(command) ||
TMessageHandler3::call_handler(command);
}
};

是否可以使用折叠表达式来实现?

最佳答案

语法应该是:

static bool call_handler(const MessageType& command)
{
return (... || TMessageHandler::call_handler(command));
}

关于c++ - 有没有办法使用 C++17 折叠表达式来实现它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66384384/

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