c++ 不定參數轉換

template <size_t Index> struct unpacked {
    template <typename Lamda, typename PacketParams, typename... Params> 
    static void step(Lamda &cb, PacketParams &pp, Params... par) {
        unpacked<Index - 1>::step(cb, pp, std::get<Index - 1>(pp), par...);
    }

    template <typename Lamda, typename PacketParams> 
    static void step(Lamda &cb, PacketParams &pp) { 
        unpacked<Index>::step(cb, pp, std::get<Index>(pp)); 
    }
};

template <> struct unpacked<0> {
    template <typename Lamda, typename PacketParams, typename... Params> 
    static void step(Lamda &cb, PacketParams &pp, Params... par) { cb(par...); }
};

1.PacketParams 是一個std::tuple 類型。

例如 std::tuple<std::string, int, long> args{"1", 2, 3};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章