第九期"Boost源码剖析:泛型函数指针类boost::fuction..."中的一个错误--作者按

pongba 2003-09-09 02:51:10

大家好,我是这篇文章的作者,非常对不起,在这篇"Boost源码剖析之:泛型函数指针类boost::function 之生死因果"中有个小小的疏忽,它在94页的“使用invoker的额外好处”一节,右版的中部(右版第二十五行),应该改成这样,以下是错误行附近的几行:

再看看它的第三行的那个typedef:
typedef typename detail::function::get_function_invoker1<
FunctionPtr,R,T0>::type invoker_type;
这里的R,T0是在具现化function模板时决议出的,你写的是function〈int(int)〉,于是R为int,T0为int。所以在本例中,上面的typedef被推导为:
// 第二十五行,改成下面这样,而原文是typedef function_invoker1〈int(*)(int),int,int〉type;
typedef function_invoker1〈int(*)(int,int),int,int〉 invoker_type;

再次说声抱歉!
...全文
144 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pongba 2003-09-27
  • 打赏
  • 举报
回复
to tianxuejin(塘):
谢谢!
另外,我觉得写的已经比较清晰了,如果你还是不太懂,可以先看看一些泛型的入门书籍,我个人觉得有了C++模板的基本知识(这一点可以看《C++Primer》,如果你需要,我可以将中文电子版发到你的邮箱)就可以读一读侯捷的《STL源码剖析》其中对GP的释义较为清楚,并且可以让你有一些读源码的根基,然后,你就可以直接读《Modern C++ Design》(《C++设计新思维》(我就是这样读的),最后,如果你有足够的耐性,就可以自行解读BOOST代码了。
另外,给你一点建议,读原代码时可以先读其文档,BOOST的文档非常完备,然后,写下一小段例子代码,编译,运行,单步跟踪进去,然后一步一步解读,当然,你必须先由文档获悉某一个类(设施)的动机和用法,然后在跟踪的时候再去了解它是如何实现。
不管阅读还是跟踪BOOST的代码都是个很长的过程,如果要完全理解每一个细节更是难上加难,你首先要对C++语言机制有充分的了解(像《C++对象模型深度探索》这种书乃是必读)。
但是,真正理解了BOOST的原码是一种享受,关于这种享受我不用描述,以后你读懂之后自会明白。
强烈建议先读《C++设计新思维》,虽然论坛上有人指责侯捷的翻译谬误颇多,但我个人觉得翻译的不错(尽管我没读过原版),我从这本书中获益良多(当然,技术性越高的书对读者要求越高),并重燃学习C++的激情。
祝好运^_^!
RalphTien 2003-09-27
  • 打赏
  • 举报
回复
文章我读了,不过我不是个好读者没读懂
谢谢你将错误说出,我很敬佩你,负责。
pongba 2003-09-14
  • 打赏
  • 举报
回复
这全是我个人的错误和疏忽,所以我该向大家道歉,谢谢大家!
suntt 2003-09-13
  • 打赏
  • 举报
回复
向认真负责的你致敬
kxiangli 2003-09-12
  • 打赏
  • 举报
回复
感谢作者,文件已更新。
blue_laser 2003-09-09
  • 打赏
  • 举报
回复
that's all right!!

6,954

社区成员

发帖
与我相关
我的任务
社区描述
《新程序员》读者俱乐部
其他 其他
社区管理员
  • 《程序员》杂志社区
  • SoftwareTeacher
  • 《新程序员》编辑部
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧