高分!!!这是一个很牛逼的问题奥!!!跪求大侠赐教!

tanfei_hp 2012-02-01 05:11:52
VC6.0下编译下面的代码居然报错!

代码:
template <typename A, typename B>
A Cast(const B& a)
{
return a;
}
int main()
{
double (*cast)(const int& a) = Cast<double, int>;
return 0;
}

错误:
F:\谭飞\VC_MyPro\C++\TempDemo\Main.cpp(75) : error C2440: 'initializing' : cannot convert from '' to 'double (__cdecl *)(const int &)'
None of the functions with this name in scope match the target type
Error executing cl.exe.

TempDemo.exe - 1 error(s), 0 warning(s)
...全文
742 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
cobra_chen 2012-02-10
  • 打赏
  • 举报
回复
有更好的工具,不去使用。
说明你不知道去往巨人的肩膀上站
面包大师 2012-02-10
  • 打赏
  • 举报
回复
vs 2010
vs 2005
vs 2008 都可以
tanfei_hp 2012-02-10
  • 打赏
  • 举报
回复
另外请各位高手给推荐一个队标准支持比较好的C++编译器
tanfei_hp 2012-02-10
  • 打赏
  • 举报
回复
31楼的“double (*cast)(const int& a) = &Cast<double, int>::Cast;”是什么意思,也不能编译通过。Cast仅仅是一个模板函数不是类成员。可能是VC6.0的问题吧。多谢各位大侠!!!小弟一定注意与时俱进!
zhao1zhong6 2012-02-08
  • 打赏
  • 举报
回复
我用vc6.0唯一一个原因就是运行速度快,因为我的电脑慢啊
heartszhang 2012-02-07
  • 打赏
  • 举报
回复
clang++华丽的编译通过。
程序员小迷 2012-02-07
  • 打赏
  • 举报
回复
没发现哪里NB的
程序员小迷 2012-02-07
  • 打赏
  • 举报
回复
不明显是类型赋值错误么
qixing1115 2012-02-07
  • 打赏
  • 举报
回复
template <typename A, typename B>
A Cast(const B& a)
{
return a;
}
int main()
{
double (*cast)(const int& a) = Cast<double, int>;
return 0;
}


VS2005正常运行
pathuang68 2012-02-07
  • 打赏
  • 举报
回复
VC6对泛型编程支持很差,换工具吧。
chengzhe 2012-02-07
  • 打赏
  • 举报
回复
gcc 华丽丽编过
lijh_402 2012-02-07
  • 打赏
  • 举报
回复
double (*cast)(const int& a) = &Cast<double, int>::Cast;
lijh_402 2012-02-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 tanfei_hp 的回复:]
VC6.0下编译下面的代码居然报错!

代码:
template <typename A, typename B>
A Cast(const B& a)
{
return a;
}
int main()
{
double (*cast)(const int& a) = Cast<double, int>;
return 0;
}

错误……
[/Quote]

试一下改成
double (*cast)(const int& a) = &Cast<double, int>::Cast;
leonhd 2012-02-07
  • 打赏
  • 举报
回复
我最近两年用了大量这种惯用法,不过都是在2005/2008/2010上编译的。

按理说,vc6没有必要不让这个通过呀。
vilnies 2012-02-03
  • 打赏
  • 举报
回复
下次别用vc6.0搞模版了
灼眼的超哥 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jackyjkchen 的回复:]

引用 11 楼 sunyongliang118 的回复:

引用 9 楼 r3000 的回复:
VC6是几个世纪前的东西了,想想你的电脑上还有什么1998年出品的软件?
死抱VC6不放的估计是这样几种人 :

1)初学者,老师要求装VC6 。
2)精神病患者。
3)奥特曼。
4)超级高高手。

用VC6怎么了???不要鄙视你自认为瞧不起的东西。
不要夜郎自大,不知有汉
……
[/Quote]
嗯,对!“习惯VC6的IDE”根本不是理由,自己是个写程序的,既然不适应别人写的新版本的程序,无法适应新版本软件,那就别为自己的软件更新新功能了(前提是你不是只写小程序练手的初学者)。
正在无聊中 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 r3000 的回复:]

VC6是几个世纪前的东西了,想想你的电脑上还有什么1998年出品的软件?
死抱VC6不放的估计是这样几种人 :

1)初学者,老师要求装VC6 。
2)精神病患者。
3)奥特曼。
4)超级高高手。
[/Quote]

还有一种。。。电脑特别老的
正在无聊中 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 liubingqian 的回复:]

引用 10 楼 kingstar158 的回复:
看来VC6被完全鄙视了,这曾经也是经典啊!

经典能当饭吃不?怎么不用Turbo C 2.0呢?
[/Quote]

你可以用TC3
正在无聊中 2012-02-03
  • 打赏
  • 举报
回复
我的电脑上不仅有VC6,还有VB6 VF6。。。。。。

liubingqian 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kingstar158 的回复:]
看来VC6被完全鄙视了,这曾经也是经典啊!
[/Quote]
经典能当饭吃不?怎么不用Turbo C 2.0呢?
加载更多回复(17)

64,675

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧