自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (4)
  • 收藏
  • 关注

原创 Guru of the Week 条款25:auto_ptr

GotW#25 auto_ptr难度:8/10问题考虑下面的代码:那些是好的,那些是安全的,那些是合法的, 那些是非法的?auto_ptr source() { return new T(1); }    void sink( auto_ptr pt ) { }    void f() {        auto_ptr a( source() );       

2002-08-05 10:20:00 1337

原创 Guru of the Week 条款27:转呼叫函数

GotW#27 转呼叫函数(Forwarding Functions)难度:3 / 10 怎样将转呼叫函数写得最好?原本答案很简单,但我们已经知道C++语言近来发生了微妙的变化。问题转呼叫函数对于将任务传递给其它函数或对象时很有用,尤其当它们被设计得很高效时。评论一下下面这个转呼叫函数。你试图修改它吗?如果是的话,怎么来?    // file f.cpp    #

2002-08-05 10:20:00 1299

原创 Guru of the Week 条款28:“Fast Pimpl”技术

GotW #28“Fast Pimpl”技术(The "Fast Pimpl" Idiom)难度:6 / 10采用一些称为“低依赖度”或“效能”方面的捷径,在很多时候颇有诱惑力,但它不总是好主意。这儿有个很精彩的方法能在客观上同时并安全的实现二者。问题标准的malloc()和new()调用的开销都是很大的。在下面的代码中,程序员最初在class Y中设计了一个类型X的成员:

2002-08-05 10:18:00 1567

原创 Guru of the Week 条款29:不区分大小写的string

GotW#29 不区分大小写的string (Case-Insensitive Strings)难度:7/10你期望一个不分大小写的字符串类型吗?你的使命是,应该选个现成的并接受它,还是自己写一个。问题写一个不分大小写的字符串类型,它其它方面都与标准库中的“string”类相同,只是在大小写区分上和(非标的,但被广泛使用的)C函数stricmp():    ci_strin

2002-08-05 10:17:00 1853

原创 Guru of the Week 条款30:名称搜索

GotW#30 名称搜索(Name Lookup)难度:9.5 / 10当你调用一个函数时,到底调的是哪一个?其答案取决于“名称搜索”,但你肯定会发现其细节非常令人吃惊。问题在下面的代码中,调用的是哪个函数?为什么?分析一下影响。    namespace A {      struct X;      struct Y;      void f( int );

2002-08-05 10:14:00 1493

原创 Guru of the Week 条款30附录:接口原则

(至此,GotW1~30即《Exceptional C++》的原型,补全。)Herb Sutter在March 1998于C++ Report上发表的文章《Whats In a Class - The Interface Principle》,属《Exceptional C++》的Item 32~34。接口原则(the Interface Principle)类里面是什么?-接口原则

2002-08-05 10:13:00 1479

effective modern c++网友自译版.

effective modern c++ 中文

2017-02-06

编译宏控过滤和宏替换工具stedit1.2.5pro

为stedit1.2.5增加了比较强大的编译宏控过滤和宏替换功能。 2.tools-Manual 的auto deduce macro replace是智能推导模式,将根据用户指定的编译宏控、include路径,自动推导出当前文件所包含的所有的宏,经用户选择后,进行宏替换动作。 a)选中要进行宏替换的代码段 b)选择auto deduce macro replace 菜单 c)在新弹出的宏替换的主对话框里点击“设定宏” d)在新对话框里点“重新推导” e)会弹出对话框, 1.输入include目录,每行一个目录即可。 2.启用预置宏,如果是要分析boost的preprocess相关宏的替换过程,请勾选上所有内置宏 f)耐心等待后,会显示代码一共直接用了哪些宏等等。注意:至少确保左下“需要确定的宏”是空的,这是现在就知道已经用到,但是定义不唯一的,请对其进行适当的勾选。 g)点“确定”,退出此对话框 h)回到宏替换的主对话框,点“转换” i)如果过程中遇到没有确定的宏,会跳对话框,要求进行选择 j)请使用boost的低版本preprocess库:1.4x到1.5x

2013-02-20

统计函数平均长度和最大长度

C、C++单文件函数长度统计工具。 多文件时,用法:dir /s /b *.cpp *.h | 本程序名 列表显示的临界行数(默认20) 必须是能通过编译的代码。注释掉的部分不统计(包括#if 0注释风格) 函数长度统计正确性估计在99%,函数名显示的正确性估计在80~90%

2009-06-16

统计函数平均长度和最大长度

C、C++单文件函数长度统计工具。 多文件时,用法:dir /s /b *.cpp *.h | 本程序名 列表显示的临界行数(默认20) 必须是能通过编译的代码。注释掉的部分不统计(包括#if 0注释风格) 函数长度统计正确性估计在99%,函数名显示的正确性估计在80~90%

2009-06-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除