类型铸造模板

发布于 2024-10-10 22:51:59 字数 289 浏览 1 评论 0原文

我尝试制作一个类型转换的模板,但在编译以下程序时出现错误。

#include<iostream.h>
#include<conio.h>
template<typename T,typename U>
T mycast(U u)
{
 return (T)u;
}
int main()
{
 double d= 10.6577;
 int j= mycast<int>(d) ;
 return 0;
}

请告诉我问题出在哪里以及如何克服? 谢谢

I am try to make a template that type casts and I got error on compiling following program.

#include<iostream.h>
#include<conio.h>
template<typename T,typename U>
T mycast(U u)
{
 return (T)u;
}
int main()
{
 double d= 10.6577;
 int j= mycast<int>(d) ;
 return 0;
}

please tell me where is problem and how to overcome?
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愛放△進行李 2024-10-17 22:51:59

如果我删除 #include (因为它应该是 #include,但无论如何都不需要),那么它可以正常编译(在 VS 2010 中)。

If I remove the #include <iostream.h> (because it should be #include <iostream>, but it's not needed anyway), then it compiles fine (in VS 2010).

千仐 2024-10-17 22:51:59
it says , expected at line 3 i.e template<typename T,typename U> 

Atul 尝试更改

int j= mycast<int>(d) ;

int j= mycast<int,double>(d) ;

P.S.我认为你需要更新你的编译器:)。

it says , expected at line 3 i.e template<typename T,typename U> 

Atul try to change

int j= mycast<int>(d) ;

to

int j= mycast<int,double>(d) ;

P.S. I think you need to update your compiler :).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文