从C++ std/Boost库迁移到Tango
关键字: tango, 迁移
从C++ std/Boost库迁移到Tango
本页目的是为了帮助大家从熟知的C++ 库迁移到Tango库。
C++/C 与D 的一般差别
预处理语句
象下面的条件编译会被完全忽略。
#ifndef myclass #define my_class
..
..
#endif
#define语句可以用
const unint foo;
或枚举(经常被推荐用来减小可执行代码的体积)代替。
至于其它#ifndef (之类的)语句,可以用static if 或version。
异常
不要利用异常作为你的程序正常的控制流。例如当你编译代码时加上”-release”标志数组边界检查会去除。
标准C头文件
time.h
为了操作时间,请用tango.util.time包里的各种模块吧。
STL
std::cout
对于简单的控制台输出你有不同的选择,例如:
Cout(“Hello World!”);
仅进行文本输出。
Stdout.formatln(“Hello {}”, “World”);
进行格式化输出。
● tango.io.Print也提供了很多有用的函数
● 对于高级日志操作,有tango.util.log(见tutorial)
std::string
D提供了一个内置的类似string的数据类型char[]。它是一个包含字符指针(不是以\0终止的)和长度属性的结构体。Tango提供了包含了高级自付出操作的tango.text.String,尽管它对于基本的字符串操作不是必须的。
std::string::substr
substr的等价物是D核心提供的的切片操作。
std::string::size / std::string::empty
每个数组有个length属性存储了数组的长度。它也是测试数组是否为空最快的方法。
std::find
tango.text.Util有不同于locate*(系列函数) 的功能,不仅能做同样的工作,甚至能做更多的高级操作。
Boost
boost::find
boost::regex
发表评论
- 浏览: 53360 次
- 性别:

- 来自: 湖北武汉

- 详细资料
搜索本博客
我的相册
共 2 张
链接
最新评论
-
小结一下众高手的解答
基本类型的常量都是在符号表中,修改的时候会在内存产生一个临时变量,修改的是这个变 ...
-- by soulmachine -
小结一下众高手的解答
引用12. const数据可以被非const引用修改import std.std ...
-- by beyking -
争得好凶,不过过瘾!
设计!设计!好的分析和设计才最重要!
-- by RyanPoy -
高质量软件设计指南-C++/C ...
非常恶心的书,非常恶心的作者
-- by wdx04 -
使用netbeans 的五大理由
IDEA的生产率最高,不过5.5开始NetBean对jsf的支持实在很不错。
-- by fight_bird






评论排行榜