zhangmeng
2022-12-13 aa9df8bbedaa240e9225c965ea89766fb86888fb
cbhomeclient.cpp
@@ -57,8 +57,7 @@
};
///////////////////////////////////////////////////////////
template <size_t... I, class T>
template <size_t... I, class T, typename enable_if<(sizeof...(I) > 0)>::type* = nullptr>
auto crop(T&& t) -> decltype(make_tuple(get<I>(std::forward<T>(t))...)){
    return make_tuple(get<I>(std::forward<T>(t))...);
}
@@ -79,7 +78,7 @@
    return m;
}
template <size_t... Is, class F, class... Args>
template <size_t... Is, class F, class... Args, typename enable_if<(sizeof...(Args) > 0)>::type* = nullptr>
Msg to_bus(client* cli, F&& f, Args&&... args){
    Msg mesg;
    if (std::forward<F>(f)(cli->bus, std::forward<Args>(args)...))
@@ -87,8 +86,7 @@
    return mesg;
}
MsgCR parse(client*, const tuple<>&){ return dummy();}
template <class... Args>
template <class... Args, typename enable_if<sizeof...(Args) == 2>::type* = nullptr>
MsgCR parse(client* cli, const tuple<Args...>& tp){
    MsgCR msg(dummy());
    MsgCommonReply m;
@@ -113,8 +111,7 @@
MsgCR to_center(client* cli, F&& f, Args&&... args){
    MsgCR msg(dummy());
    auto vmsg = std::move(to_bus<Is...>(cli, std::forward<F>(f), std::forward<Args>(args)...));
    if (!vmsg.empty())
        msg = std::move(parse(cli, vmsg.at(0)));
    if (!vmsg.empty()) msg = std::move(parse(cli, vmsg.at(0)));
    return msg;
}