
c/c++技术
技术笔记本
这个作者很懒,什么都没留下…
展开
-
C++ Exceptions: Pros and Cons
关于C++异常的争论http://www.codeproject.com/Articles/38449/C-Exceptions-Pros-and-Cons转载 2012-12-13 10:00:18 · 759 阅读 · 0 评论 -
c/c++项目如何管理头文件
最近的项目一直在讨论如何管理头文件,原项目使用Visual Studio开发,源文件中对头文件的引用比较乱,有很多类似于"../../include/header.h"的头文件引用。现在要移植到类UNIX平台,头文件的引用管理问题也逐渐显露出来。IDE的使用一方面简化了我们的开发工作,另一方面也让我们丧失了对某些领域的控制,或者说让我们疏忽了对某些领域的控制感,不知不觉我们就按照IDE的默认方原创 2012-12-14 21:01:51 · 3291 阅读 · 0 评论 -
ISO C语言新标准(C11)
这些天一直很忙,昨天在BBS上看到ISO C语言新标准[1]公布了,支持多线程!新特性[2]有些和C++11是对应的,如线程和UTF-8:对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符, aligned_alloc函数以及头文件。_Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。_Ge转载 2012-01-02 16:53:51 · 3018 阅读 · 2 评论 -
C++11标准支持UTF-8编码
在新的C++标准C++11[1]中,增强了对Unicode的支持。char被定义为能够存储UTF-8的8位编码。还增加了用于支持UTF-16和UTF-32的数据类型char16_t和char32_t。Unicode是为了表示世界上所有语言而诞生的。任何文字在Unicode都对应一个值,称为代码点。UCS-2和UCS-4分别用2个和4个表示这种对应关系。这些定义没有说明代码点任何在计算机中存原创 2012-12-30 18:32:30 · 5172 阅读 · 1 评论 -
C++ Notes
Pointer to class member function:static: return_type (*member_func_ptr_var)(parameter_list) = &class_name::member_funcnormal_func:declare: return_type (class_name::*member_func_ptr_var)(原创 2013-02-23 21:57:34 · 849 阅读 · 0 评论 -
boost shared_ptr: enable_shared_from_this验证
项目中使用boost::asio,其中的异步调用往往会有一个handler参数,这个参数一般使用动态内存申请的对象和其成员函数构建。因此如果在asio线程和对象管理线程中间没有适当的同步机制,则很容易造成内存访问错误,如pure virtual method called等。这时候可以使用boost::shared_ptr和enable_shared_from_this(从类实例内获取管理自身原创 2013-02-21 15:19:04 · 1360 阅读 · 0 评论 -
Pure Virtual Function Called: An Explanation
Summary"Pure virtual function called" is the dying message of the occasional crashed C++ program. What does it mean? You can find a couple of simple, well-documented explanations out there that appl转载 2013-02-18 23:31:45 · 742 阅读 · 0 评论 -
Managing Dynamic Objects in C++
Tom is an independent consultant, the author of C++ Programming Style (Addison-Wesley, 1992), and a columnist for C++ Report. This article is based on his PLoP '95 paper published in Pattern Languages转载 2013-02-19 10:10:16 · 757 阅读 · 0 评论 -
智能指针:从std::auto_ptr到std::unique_ptr
std::auto_ptr封装动态申请对象内存返回的指针,并且其行为也和普通指针一样。最重要的一点,程序员不必记得去释放之前申请的内存,当std::auto_ptr销毁时,其封装的指针所指向的内存也会自动销毁。当需要处理异常时,这尤其重要,RAII技术保证异常发生后,在栈上保存的对象依次销毁释放,直至异常被捕获。当动态申请对象数组时,std::auto_ptr就不在适用了。这是因为std::a原创 2012-12-15 21:38:43 · 6811 阅读 · 0 评论 -
C++异常安全
http://www.boost.org/community/exception_safety.html转载 2012-12-15 01:33:52 · 542 阅读 · 0 评论