C++ 可根据参数值进行重载吗?

查看 122|回复 8
作者:iqoo   
函数或类方法,当参数为常量 1 时返回类型 A ,参数为常量 2 时返回类型 B ,并且在编译期间确定。
在一些语言例如 TypeScript 中,参数类型可以是一个常量或常量集合,返回类型也可根据参数确定。这在 C++ 中实现不了吧。

常量, 参数, 类型, 返回

wanmyj   
不可以
agagega   
你把常量的值当作一个模板参数然后特化就可以了。
wanmyj   
如果你说的参数值是参数的个数的话,那是可以的,只是每种参数组合自己都实现一遍就好了
nightwitch   
返回参数用 std::variant 。 传入参数如果是编译期常量的话可以用 if constexpr
ProPh3t   
template + auto 应该就可以满足吧
iOCZ   
理论上如果是常量是可以实现的,编译时就知道调用哪个了
cxxnullptr   
#include [i]
template[i]
void func() {
std::cout
void func() {
std::cout
void func() {
std::cout ();
func();
func();
return 0;
}
cxxnullptr   
@cxxnullptr 看错了,没注意到返回不同类型
您需要登录后才可以回帖 登录 | 立即注册

返回顶部