有3个子库,一个是我几年前自己写的STL,另外两个是我把STL容器类“移植”到C下面的一个C库和一个在C库基础上以C++ template构建的模板库。主要是想在嵌入式平台上运用,现在可以在X86、DSP、ARM上编译运行。希望得到大家的帮助!
下载地址:http://gforge.osdn.net.cn/projects/ylib/
BLOG地址:http://blog.csdn.net/youngphoneix/archive/2006/10/19/1341609.aspx
converse 回复于:2006-10-28 10:18:08
支持!最近我也把STL的代码看了一下,C下面类似这样的库几乎没有,支持LZ的东东~~
converse 回复于:2006-10-28 10:26:27
楼主大概说说C的实现用到了什么比较特殊的技术对数据结构进行封装吧,我比较感兴趣~~
emacsnw 回复于:2006-10-28 15:50:05
楼主弓虽啊。下载学习一下。
savageranthony 回复于:2006-10-28 23:56:20
不太喜欢用 STL,不过还是支持一下
kenmark 回复于:2006-10-29 19:28:57
强的东西,又是C范性
phoneix 回复于:2006-10-30 23:31:24
其实了解了编译原理和计算机系统是不难明白为什么C能够实现C++所谓的泛型的?当然,类似模板元编程的编译期技术是没有办法实现的。
converse (创系) 问道使用了什么技术,主要还是函数指针,这真是C语言里最伟大的特性之一了!
我想写一个系列的文章把我是如何实现的写下来,只看代码还是一件比较累人的事情!
希望能得到大家的鼓励!
MackedNice 回复于:2006-10-31 09:45:41
好的。。。。
lz加油啊。。。。
期待你的大作。。。。。。
magicgarden 回复于:2006-10-31 10:51:36
又一个重复劳动的猪头.
converse 回复于:2006-10-31 11:33:51
引用:原帖由 magicgarden 于 2006-10-31 10:51 发表
又一个重复劳动的猪头.
请你注意自己的言辞,谢谢
wroxman 回复于:2006-10-31 11:50:34
我会帮忙测试。。。
rock_jq 回复于:2006-10-31 15:02:01
引用:原帖由 phoneix 于 2006-10-30 23:31 发表
其实了解了编译原理和计算机系统是不难明白为什么C能够实现C++所谓的泛型的?当然,类似模板元编程的编译期技术是没有办法实现的。
converse (创系) 问道使用了什么技术,主要还是函数指针,这真是C语言里最伟大 ...
期待!
pmt1982 回复于:2006-10-31 15:36:48
高手,学习一下,一直都没怎么弄过STL
linternt 回复于:2006-10-31 16:46:05
没用过,精神支持
benlan 回复于:2006-10-31 21:52:42
顶你个肺
converse 回复于:2006-11-01 11:54:58
借着这个帖子,提出一个问题:是不是所有C++的特性都可以通过C来模拟的,如果可以又是如何实现的呢?比如虚拟函数,模版,泛型之类的.
虚拟函数我先回答吧,可以通过函数指针的形式.
还没有仔细看过LZ的代码,不知道LZ在代码里面做到这些没有.如果没有的话,我觉得要做到STL那样容器和算法分离是比较困难的,至少我没有想到办法.
connet 回复于:2006-11-01 13:49:14
为什么 0.8 比 0.11还新?
phoneix 回复于:2006-11-01 16:25:10
楼上的0.8当然比0.11新啊!0.11不是1.1,你可能没有仔细看吧?
C是可以实现容器和算法分离的,但是算法的实现比较复杂,例如必须把迭代器的迭代函数传递给算法,在最初的版本中我实现了不少这样的算法,后来觉得挺可笑,过分强调通用而忽视了效率,所以后来把它们全都删掉了,现在的版本主要提供的是容器,实现的时候,容器和迭代器是分离的,事实上也很容易实现容器和迭代器的分离。
connet 回复于:2006-11-01 17:23:49
0.8 比0.11 还新, 你还很有理啊,哈哈
这么说 linux 2.6.9 比 2.6.18 新啊?
开源了, 没说明开源协议。
mjdcl 回复于:2006-11-01 17:33:32
不要偏题了
期待楼主写出创作过程思路,这个对大家启发更大
albcamus 回复于:2006-11-01 17:37:08
楼主在什么地方工作,是不是我同事呀? :D
phoneix 回复于:2006-11-01 23:09:03
应该不会,我在武汉
phoneix 回复于:2006-11-01 23:17:25
引用:原帖由 connet 于 2006-11-1 17:23 发表
0.8 比0.11 还新, 你还很有理啊,哈哈
这么说 linux 2.6.9 比 2.6.18 新啊?
开源了, 没说明开源协议。
抱歉,少敲了一个点,应该是0.1.1和0.1.2,我把这两个中间版本删了,免得引起误会。
每个文件的开头有一个简短的授权声明。
|