从C++ std/Boost库迁移到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

你可能感兴趣的:(数据结构,C++,c,工作,C#)