2007-10-05

从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

对于简单的控制台输出你有不同的选择,例如:

tango.io.Console里的

    Cout(“Hello World!”);

仅进行文本输出。

tango.io.Stdout里的

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

    tango.text.Regex

 

原文:Transition from C++ std / Boost to Tango

评论
发表评论

您还没有登录,请登录后发表评论

soulmachine
  • 浏览: 53360 次
  • 性别: Icon_minigender_1
  • 来自: 湖北武汉
  • 详细资料
搜索本博客
我的相册
4dd10542-363e-3442-ab7a-6d72d1f607b7-thumb
黄鹤楼上.jpg
共 2 张
存档
最新评论