代码改变世界

c++ 模板 不能 分离编译

2015-02-26 12:21 by youxin, 1119 阅读, 0 推荐, 收藏,
摘要:C++Template头文件和定义分开编译的问题(1)// Foo.htemplateclass Foo{public:void f();};// Foo.cpp#include #include "Foo.h"templatevoid Foo::f(){std::cout ::f()/n";}//... 阅读全文

effective C++ 条款25 swap

2015-02-26 10:53 by youxin, 542 阅读, 0 推荐, 收藏,
摘要:item 25:一个不抛异常的swap函数标准库有一个swap用于交换两个对象值namespace std{ template void swap(T& a , T& b) { T temp(a) ; a = b ; b = temp ; }}所以,只要对象的类型T支持copying(copy ct... 阅读全文

Pimpl Idiom /handle body idiom

2015-02-26 10:52 by youxin, 1660 阅读, 0 推荐, 收藏,
摘要:在读《Effective C++》和项目源代码时,看到pImpl Idiom。它可以用来降低文件间的编译依赖关系,通过把一个Class分成两个Class,一个只提供接口,另一个负责实现该接口,实现接口与实现的分离。这个分离的关键在于“以声明的依赖性”替换“定义的依赖性”,而编译依赖性最小化的本质是:... 阅读全文

C++异常安全、copy and swap

2015-02-26 10:03 by youxin, 1133 阅读, 0 推荐, 收藏,
摘要:异常安全的代码是指,满足两个条件1异常中立性 :是指当你的代码(包括你调用的代码)引发异常时,这个异常 能保持原样传递到外层调用代码。(异常中立,就是指任何底层的异常都会抛出到上层,也就相当于是异常透明的。)2.异常安全性:抛出异常后,资源不泄露,抛出异常后,不会使原有数据恶化(例如正常指针变野指针... 阅读全文

__BEGIN_DECLS __END_DECLS

2015-02-14 17:44 by youxin, 989 阅读, 0 推荐, 收藏,
摘要:http://hi.baidu.com/xiaoxiaolq/blog/item/1edc2af30dd4915a342acc5e.html对__BEGIN_DECLS和 __END_DECLS 的理解在C语言代码中头文件中,充斥着下面的代码片段:(sys/cdefs.h)__BEGIN_DECLS... 阅读全文

转:探索C++0x: 1. 静态断言(static_assert)

2015-02-13 17:26 by youxin, 493 阅读, 0 推荐, 收藏,
摘要:转自:http://www.cppblog.com/thesys/articles/116985.html简介C++0x中引入了static_assert这个关键字,用来做编译期间的断言,因此叫做静态断言。其语法很简单:static_assert(常量表达式,提示字符串)。如果第一个参数常量表达式的... 阅读全文

likely(x)与unlikely(x) __builtin_expect

2015-02-13 15:39 by youxin, 956 阅读, 0 推荐, 收藏,
摘要:本文讲的likely()和unlikely()两个宏,在linux内核代码和一些应用中可常见到它们的身影。实质上,这两个宏是关于GCC编译器内置宏__builtin_expect的使用。顾名思义,likely()指“很有可能”之意,而unlikely()指“不太可能”之意。那么,在实际应用中,它们代... 阅读全文

c++ ScopeExitGuard

2015-02-09 17:46 by youxin, 2159 阅读, 1 推荐, 收藏,
摘要:说到Native Languages就不得不说资源管理,因为资源管理向来都是Native Languages的一个大问题,其中内存管理又是资源当中的一个大问题,由于堆内存需要手动分配和释放,所以必须确保内存得到释放,对此一般原则是“谁分配谁负责释放”,但即便如此仍然还是经常会导致内存泄漏、野指针等等... 阅读全文

c++ 11 bind function

2015-02-09 17:17 by youxin, 1547 阅读, 0 推荐, 收藏,
摘要:Year 2011陈 良乔C++11 FAQstd::function 和 std::bind标准库函数bind()和function()定义于头文件中(该头文件还包括许多其他函数对象),用于处理函数及函数参数。bind()接受一个函数(或者函数对象,或者任何你可以通过”(…)”符号调用的事物),生... 阅读全文

boost shared_ptr weak_ptr

2015-02-05 17:01 by youxin, 825 阅读, 0 推荐, 收藏,
摘要:文档: http://www.boost.org/doc/libs/1_57_0/libs/smart_ptr/shared_ptr.htm shared_ptr构造有个原型 Introduction The shared_ptr class template stores a pointer to 阅读全文
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 269 下一页