永发信息网

VC6中typedef typename的问题

答案:2  悬赏:10  手机版
解决时间 2021-03-12 02:03
1.问题描述:
VC6编译开源代码nanoflann.hpp时(http://code.google.com/p/nanoflann/source/browse/trunk/include/nanoflann.hpp?r=41)
下面这句报错“error C2059: syntax error : '<'”和“error C2039:'distance_t' : is not a member of '`global namespace''
typedef typename Distance::template traits::distance_t metric_t;
这句位于一个模板类的定义中(链接地址第1221行)
template
struct KDTreeEigenMatrixAdaptor
{
。。。
}

模板类参数class Distance传入的metric_L2的定义为:

struct metric_L2 {
template
struct traits {
typedef L2_Adaptor distance_t;
};
};
我试了一下,如果直接用typedef nanoflann::metric_L2::traits::distance_t metric_t;就可以通过编译。

2.请问:

该怎么改才能让这个metric_L2类里的distance_t 传进来呢?
最佳答案
VC6不支持、不完善、出幺蛾子的template特性太多,除了不支持偏特化等,还有模板函数/普通函数之前匹配优先度的缺陷看似不出错,但执行时就完全不是预想的事情。这种事情比出错还可恶,是隐藏性的陷阱。

所以,若是折腾template方面的项目,还是免了VC6吧。怎么也要VC 7.1(2003)以上。否则后面还得浪费更多的时间。(故此,我也不上机测试你的代码了,没意义)
全部回答
我不会~~~但还是要微笑~~~:)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
质量也太烂了,途昂是选择直接退市还是降价15
魔兽世界增强萨满属性问题,萨满大神来
阅读图文资料,简述广东省大力发展绿道旅游对
属马女孩叫芷苓好吗
哈尔滨变压器公司在什么地方啊,我要过去处理
电梯噪音的判断标准是什么,电梯噪音扰民如何
竹溪县十堰剪约(竹溪县公路管理局西南)哪位知
曾沛慈和汪大东是不是男女朋友
重庆市开县到四川泸州怎么坐车最快?坐火车最
残疾摩托车修理部我想知道这个在什么地方
钝角三角形用延长的高来算面积,怎样算?
我喜欢一个女孩,她不理我,我每天给她留言关
现在上网看电视要收费啊???是不是真的哦?
而龙族什么词?
提新车出来,红布花怎么弄?
推荐资讯
权志龙跟李敏镐谁红一点
四个数相加等于100
头发种植一般需要多长时间呢?
专业选生物工程,电子工程还是金融好?
长春公交儿童身高多少买票
booking在美国的订单可以打中文电话吗
京东买东西一个帐户买同一款产品2次为什么不
【什么是空气能热水器】空气能热水器中l/H表
东龙公寓地址有知道的么?有点事想过去
打火机摔坏了液化气会泄漏吗
银行贷款三万只有三天到期了,实在没钱还不上
怎么样去除老年斑
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?