gpt4 book ai didi

c++ - 多个可变函数的单个模板参数包?

转载 作者:行者123 更新时间:2023-11-27 22:32:29 27 4
gpt4 key购买 nike

通常我们会做这样的事情来定义多个采用相同参数包的可变参数函数:

template<typename ...Pack>
void func1(Pack... params);

template<typename ...Pack>
void func2(Pack... params);

template<typename ...Pack>
void func3(Pack... params);

template<typename ...Pack>
void func4(Pack... params);

有什么方法可以避免这种多余的重复吗?例如,像这样的东西:

template<typename ...Pack>
{
void func1(Pack... params);
void func2(Pack... params);
void func3(Pack... params);
void func4(Pack... params);
}

最佳答案

Pre C++20 回答:不,您无法做任何事情来获得这样的语法。您能做的最好的事情就是创建一个可以为您完成大量工作的宏。

C++20:您可以使用 auto 作为函数参数类型,它是编写模板的语法糖,就像当前用于 lambda 一样。那会给你

void func1(auto... params);
void func2(auto... params);
void func3(auto... params);
void func4(auto... params);

关于c++ - 多个可变函数的单个模板参数包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59286796/

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