gpt4 book ai didi

c++ - 函数模板编译器错误

转载 作者:行者123 更新时间:2023-11-28 03:00:00 26 4
gpt4 key购买 nike

我编写了一个非常简单的程序来理解具有多个参数的函数模板,但我一直从编译器收到此错误消息。我已经多次查看该程序,但我似乎无法理解问题出在哪里。我真的很感激任何见解。

#include <iostream>
using namespace std;

template <class FIRST, class SECOND>
FIRST smaller(FIRST a, SECOND b)
{
return (a<b?a:b);
}

int main()
{

int x = 21;
double y = 12.2;
cout << smaller(x,y) << endl;

}

编译器错误信息:

  • 在函数“FIRST smaller(FIRST, SECOND) [with FIRST = int, SECOND = double]”中:

  • 从这里实例化

  • [警告] 从 'double' 转换为 'int'

最佳答案

首先,这是一个警告而不是错误。

它告诉您的是,您正在将 double 隐式转换为 int。这会导致精度损失。

发生转换是因为返回类型与第一个参数的类型相同,在您的示例中为 int

关于c++ - 函数模板编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21078646/

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