gpt4 book ai didi

c++ - 接受一个或两个参数的模板函数

转载 作者:行者123 更新时间:2023-11-30 01:13:41 25 4
gpt4 key购买 nike

有没有一种方法可以编写具有两种模板类型的函数;

  • 采用两个参数,这样
  • 如果只用一个参数调用函数,第二个参数设置为默认值?

以下不起作用:

#include <iostream>

template <class A, class B>
void f (A a, B b = 0) {
std::cout << "Hello world!" << std::endl;
}

int main () {
int i;
f (i);
}

换句话说,我想要一个“模板类比”

template <class A>
void f (A a, int b = 0) {
std::cout << "Hello world!" << std::endl;
}

最佳答案

是的,如果您也准备为 B 提供默认类型(并使用 C++11)。

template <class A, class B = int>
void f (A a, B b = B{}) {
std::cout << "Hello world!" << std::endl;
}

int main () {
int i;
f (i);
}

或者重载 f 并根据需要提供默认值。

关于c++ - 接受一个或两个参数的模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686826/

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