游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4213|回复: 11

c++ BUG一条。

[复制链接]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-5 12:13:00 | 显示全部楼层 |阅读模式
市面上99%的C++ compiler都有这个BUG,今天俺也发现了,真J8郁闷。
例子:
//mytemplate.h
#ifndef __MY_TEMPLATE_H_
#define __MY_TEMPLATE_H_

template<class T>
class CMyTemplate
{
public:
    CMyTemplate();
};

#endif

===================================
//mytemplate.cpp
#include "mytemplate.h"

template<class T>
CMyTemplate<T>::CMyTemplate()
{
    return;
}
===================================
//main.cpp
#include "mytemplate.h"
int main()
{
    CMyTemplate<int> test;
    return 0;
}
===================================
就这三个文件,link的时候出错。
但是把mytemplate.cpp的内容和template.h放在一起就可以通过。
郁闷了俺好久,好歹用C++用了这么久,还没碰过这种问题。
把所有可以找到的中/英文C++教材都看了一遍,都没讲有这个问题。
最后到老外的论坛上找,终于发现这个是目前99%的C++编译器存在的问题。
已知的唯一没有这个BUG的C++编译器是Comeau C++,可以在:
http://www.comeaucomputing.com/4.0/docs/userman/ati.html
查询到相关内容。
希望以后C++编译器能解决这个问题,要不然写个模版类还要把所有
的东西都放在头文件里,破坏整体结构。日。

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2004-6-5 14:20:00 | 显示全部楼层

Re:c++ BUG一条。

这不算BUG拉.
只不过每种C++COMPILER对C++的支持程度都不一样.C++的标准也是在变化中的.
其实我觉得比较合理,毕竟TEMPLATE和宏还是有一定的可比性.

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2004-6-5 14:34:00 | 显示全部楼层

Re:c++ BUG一条。

。。。。当你写一个比较复杂的模版类的时候就会发现了,比如说些一个静态内存分配的。你会发现要放在一起非常的痛苦。

1

主题

66

帖子

78

积分

注册会员

Rank: 2

积分
78
发表于 2004-6-5 16:06:00 | 显示全部楼层

Re:c++ BUG一条。

恩。。
不能算bug,帮助文件里都说明了,不支持

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2004-6-5 16:38:00 | 显示全部楼层

Re:c++ BUG一条。

。。。。
那么说不支持是合理的啦?日哦。
给我个理由。

11

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2004-6-5 18:35:00 | 显示全部楼层

Re:c++ BUG一条。

理由就是模板类需要实例化

分开的话编译器真的不好做,要查找实现的文件

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2004-6-5 20:10:00 | 显示全部楼层

Re:c++ BUG一条。

完全可以像其他函数一样在obj文件里面留个地址嘛。。

6

主题

74

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2004-6-6 00:58:00 | 显示全部楼层

Re:c++ BUG一条。

晕死,模版的分离编译需要用export keyword,vc系列是不支持的(包括.net 7.0 7.1)
gcc没试过

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2004-6-6 12:11:00 | 显示全部楼层

Re:c++ BUG一条。

gcc也没有。
borland也不支持。

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-6-7 14:26:00 | 显示全部楼层

Re:c++ BUG一条。

我遇到?牛?]把我???死。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-1 15:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表