当前位置: 代码迷 >> Symbian >> 移植STL到symbian,已经完成了一部分,有兴趣的一起看看,该如何处理
  详细解决方案

移植STL到symbian,已经完成了一部分,有兴趣的一起看看,该如何处理

热度:3217   发布时间:2013-02-26 00:00:00.0
移植STL到symbian,已经完成了一部分,有兴趣的一起看看
习惯了使用STL,所以尝试把STL移植到symbian上,现在做的还比较粗糙,简单测试了一下,似乎还可以。已经放在
http://groups.google.com/group/symbian_stl?hl=zh-CN
上面,可以随意下载,和mingw一样是GPL协议。用的原始版本是mingw里面带的3.4.2版本,现在几乎容器都可以使用,但是io和stream,typeinfo,exception还不行,主要是io部分symbian和x86的系统差距比较大,symbian也不支持typeinfo和C++标准的exception。

前一段时间penrillian放出了一个基于ustl的ustl-0.9Symbian,似乎优点就是用内存比较少。不过至少这个实现的auto_ptr在symbian上是不能正常工作的,如果没有发生异常,似乎完全可行,但是当发生异常,比如User::Leave的时候,这个auto_ptr就完全实效,全是因为symbian上被阉割了的C++,当发生异常时,堆栈解退,栈上的对象的析构函数不会被调用……而堆栈解退时要调用析构函数正是auto_ptr得以实现的本质依赖。参考了csdn的一个叫做ilovevc的朋友的blog,改了一下,测试还算满意。
希望有兴趣的朋友能参与,不管是patch,还是测试,或者探讨,或批评,都是欢迎的。

------解决方案--------------------------------------------------------
路漫漫,其修远兮,你将上下而求索。

vector, list, 等等,你可以很直接用的STLPort来完成。只需要半天就可以跑起来。

但是iostream,string等等,其复杂度是难以想象的。

auto_ptr这个东西,某位前辈在程序员杂志上探讨过。他的方法很好。而且可行。建议你google一下。

我忘了是哪年的了,我找到的是一个电子版。

你对symbian的内存理解很深阿……

佩服。真的。
------解决方案--------------------------------------------------------
ding



------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
我也做过类似工作,有空交流交流, MSN: zhouqs_1@hotmail.com
------解决方案--------------------------------------------------------
弱弱地问一下,会影响效率么,有多大影响
最近做流媒体,这个问题比较伤脑筋
------解决方案--------------------------------------------------------
这个不太容易编译啊。
我从这里下载到了STL,编译成功!
http://community.csdn.net/Expert/topic/5287/5287399.xml?temp=.3333399#reply
------解决方案--------------------------------------------------------
记得在symbian官方网站上看过这篇文章
Creating the C++ auto_ptr <> utility for Symbian OS
简要介绍了如何利用Leave实现auto_ptr <>
不知是否和你提到的ilovevc的类似的方法