gpt4 book ai didi

c++ - 如何将通用函数类型放入 std::map?

转载 作者:行者123 更新时间:2023-12-01 14:52:33 24 4
gpt4 key购买 nike

<分区>

我可以使用泛型函数类型作为 std::map 的值吗?这消除了为不同的函数参数和返回值编写不同的 std::maps 的需要。

template<class Function,class ... Args>
inline auto FuncWrapper(Function &&f, Args && ... args)-> decltype(f(std::forward<Args>(args)...))
{
    return f(std::forward<Args>(args)...);
}

std::map<std::string, FuncWrapper>> FUNCS;

void test_map_operator()
{
    FUNCS["MD5"]([](std::string data){ return "MD5: "+ data; }, "some data");
    FUNCS["RSA"]([](std::string data, std::string key) {return "RSA: "+ data +':' + key;}, "some data", "some key");
    FUNCS["Other"]([](int a, double b, char c){return (c-'0')+a+b;}, 1, 2.0, 'c');
}

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