gpt4 book ai didi

c++ - 如何通过函数重载避免代码重复

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

我有一对重载函数:

void func(const std::string& str, int a, char ch, double d) {
// piece of code A
sendMsg(str, a, ch, d);
// piece of code B
}

void func(int a, char ch, double d) {
// piece of code A
sendMsg(a, ch, d);
// piece of code B
}
piece of code Apiece of code B完全一样,唯一不同的是 sendMsg的参数.
有没有办法避免代码重复?

最佳答案

模板可能是一种可能性:

template <typename ... Ts>
auto func(const Ts&... args)
-> decltype(sendMsg(args...), void()) // SFINAE to only allow correct arguments
{
// piece of code A
sendMsg(args...);
// piece of code B
}
但感动 // piece of code A在它自己的功能中可能是我的选择。

关于c++ - 如何通过函数重载避免代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68647487/

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