[玩代码之] 像脚本语言一样写C++

jadedrip 2013-01-17 05:37:15
疯狂的类型推导+虚函数+RTTI,会带来怎么样的东东?

最近写了一个好玩的类 object, 目标是可以像脚本语言一样,存放任意类型,做任意操作。目前完成了大半,有兴趣的朋友可以拿来玩玩。





这个类可以这么玩

1.void main()
2.{
3. using namespace lugce;
4.
5. /// 当字符串
6. std::stringzz="zz";
7. object zo="string";
8. std::cout << zo << std::endl;
9.
10. /// 当map
11. object omap;
12. omap["zz"]="Hello world";
13. omap[zo]="Hello world";
14. std::cout << zo <<" - " << omap["zz"] << std::endl;
15.
16. /// 当数字+计算
17. object iobj=15;
18. std::cout << ( iobj + 20 ) << std::endl;
19.
20. /// 当 vector
21. std::vector< std::string> vct;
22. vct.push_back("1");
23. vct.push_back("2");
24. objectob=std::move(vct);
25. ob.push( "3" );
26.
27. std::cout << ob[1] << std::endl;
28.}

当然,目前还是半成品,玩玩就可以了,别乱用啦。

需要支持 C++11 的编译器(我用的 VC 2012),当然,你也可以改代码让它支持老的编译器。

http://blog.csdn.net/jadedrip/article/details/8514311
...全文
606 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2013-02-07
  • 打赏
  • 举报
回复
支持一下lz的研究精神
luciferisnotsatan 2013-02-07
  • 打赏
  • 举报
回复
既然要新标准才能用,那么新标准里不已经有了个叫auto的类型么
Defonds 2013-02-07
  • 打赏
  • 举报
回复
这个有趣。Mark
healer_kx 2013-02-06
  • 打赏
  • 举报
回复
需要编译很长时间的时候,再怎么弱类型也不像脚本了。 再说了,脚本和弱类型不是一回事儿啊。
唯恐天下不乱 2013-02-06
  • 打赏
  • 举报
回复
.net里也有Object类型
唯恐天下不乱 2013-02-06
  • 打赏
  • 举报
回复
boost::any非常不错
jadedrip 2013-02-06
  • 打赏
  • 举报
回复
我说了,这个是研究性的,还不到实用的地步。只是告诉大家,代码还可以这么写,哈哈。
rocktyt 2013-01-31
  • 打赏
  • 举报
回复
看了下代码,必须是预先定义的类型才能放进object啊,不是任意类型
疯狂的红豆 2013-01-31
  • 打赏
  • 举报
回复
还达不到玩得转的地步,,,
Modeus 2013-01-31
  • 打赏
  • 举报
回复
引用 12 楼 jadedrip 的回复:
当然玩过 boost any, boost.any 虽然可以放任何东东,但它其实是强类型的。你不知道类型是取不出来的。
如果连写代码的人都不知道类型,取出来岂不是很危险?就算是动态语言,也要知道类型,不然怎么操作?比如把一个数组索引的操作用在整数类型上。 动态语言只不过相对让你自由一点,比如一个变量可以“废物利用”,存完数字,还可以改存字符串。 其实人家微软早就想出这玩意来了,COM的VARIANT就是支持很多种类型的。它能与动态语言交互,就说明它的效果了。
ppsharp 2013-01-30
  • 打赏
  • 举报
回复
能给个VS2012的下载链接不?
youyou1912 2013-01-30
  • 打赏
  • 举报
回复
强哦. 当vector用的话, 支持游标么? 我搜了一下, 好像没有iterator哦.
jadedrip 2013-01-22
  • 打赏
  • 举报
回复
当然玩过 boost any, boost.any 虽然可以放任何东东,但它其实是强类型的。你不知道类型是取不出来的。
chuachua66 2013-01-18
  • 打赏
  • 举报
回复
mark一下先
lee_鹿游原 2013-01-18
  • 打赏
  • 举报
回复
多谢楼主分享~
Enter空格 2013-01-18
  • 打赏
  • 举报
回复
是啊Boost::Any声明的东西,直接就是弱类型的玩意。
stereoMatching 2013-01-18
  • 打赏
  • 举报
回复
不知道楼主有没有玩过boost::any? 使用它来构建你的class,相信会让问题更简单
haha_ 2013-01-17
  • 打赏
  • 举报
回复
支持12345
  • 打赏
  • 举报
回复
mujiok2003 2013-01-17
  • 打赏
  • 举报
回复
源代码在线浏览有乱码,估计有中文注释。
加载更多回复(4)

64,266

社区成员

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

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