共享库的构造函数和析构函数

gcc特有的函数(在编译时不能使用"-nonstartfiles"或"-nostdlib"选项): void __attribute__ ((constructor)) my_init(void); void __attribute__ ((destructor)) my_fini(void); 移植性更好的函数(不能改变函数名): void _init(); void _fini();

2007-03-22 · wuan

boost::format

std::cout << format("%|1$1| %|2$3|") % "Hello" % 3 << std::endl; 官网的这个例子,其中竖线 | 用来格式化目标串,且必须匹配。 可以把两个竖线及其之间的内容看作一个s,即 %|1$1| == %s 美元 $ 用来填充目标串,后面所跟的数值表示要把目标串填充至多少位。 看几个例子就知道了: std::cout << format("%|1$1| %|2$3|") % "Hello" % 3 << std::endl; Hello 3 <--- 中间两个空格(3 - length("3")) std::cout << format("%|1$8| %|2$2|") % "Hello" % 3 << std::endl; Hello 3 <---...

2006-10-13 · wuan

在非模板类中定义模板成员函数

class TObject { public: template<typename T> void foo(T f_t); }; template<typename T> void TObject::foo(T f_t) { std::cout<<f_t<<std::endl; } int main() { TObject obj; obj.foo("123"); obj.foo(111); return 0; } 刚开始学模板,直觉告诉我这种用法可能有失偏颇~ 但是在没找到证明我的直觉的证据之前,我决定立刻就用:)

2006-10-13 · wuan