码迷,mamicode.com
首页 >  
搜索关键字:异常安全    ( 63个结果
boost-同步-锁的守护
lock_guard模板 boost::lock_guard 构造时提供实现Lockable概念的对象作为参数,获得所有权 析构时释放所有权 提供RAII风格的锁定,实现锁和解锁的异常安全 lock_guard(Mutex& m_, adopt_lock_t)允许lock_guard获得线程已经持有
分类:其他好文   时间:2016-03-07 12:00:01    阅读次数:198
c++异常安全和copy and swap策略
异常安全有两个目标: 不泄露任何资源。这个通过RAII可以做到。 不破坏数据结构。这是下文要讨论的事情 异常安全有三个级别: 基本安全:异常发生后对象和数据结构还有合法状态。实现简单,应该作为最低要求。 很安全:抛出异常后程序状态不变。即要有“原子性”,若成功则完全成功,失败则保持原状。本文的cop
分类:编程语言   时间:2016-02-20 21:36:28    阅读次数:239
Copy-and-swap
为了在自己定义类里重载一个异常安全(exception safe)的赋值操作符。创造了一个这种习惯用语。也叫:Create-Temporary-and-Swap。要想写健壮的C++代码。异常安全很重要。能够给异常安全分三级:1> 基本安全:实现简单、代价小。应该作为常规手段。2> 非常安全:在不论什...
分类:其他好文   时间:2015-12-23 12:53:51    阅读次数:148
Effective C++ 条款25 考虑写出一个不抛出异常的swap函数
1. swap是STL的一部分,后来成为异常安全性编程(exception-safe programming)(见条款29)的一个重要脊柱,标准库的swap函数模板定义类似以下:namespace std{ template swap(T& lhs,T& rhs){ T t...
分类:编程语言   时间:2015-08-30 22:46:57    阅读次数:154
Linux运维 第四阶段 (一) myql基本概念及编译安装步骤
Linux运维第四阶段(一)myql基本概念及编译安装步骤一、相关基础概念:1、文件存储:数据冗余和不一致性;数据访问困难;数据孤立;完整性问题;原子性问题;并发访问异常;安全性。2、DBMS(DataBaseManagementSystem)功能:数据管理的独立性;有效地完成数据存取;数据完整性..
分类:系统相关   时间:2015-08-06 13:34:41    阅读次数:245
mysql之数据库基本理念
数据储存的问题:数据冗余和不一致数据访问困哪数据孤立完整性原子性问题例如AB2个账户,从A中向B转钱,不管如何转,A和B的总量是保持不变的。只要A减少,B就增加。并发访问异常安全性问题文件的分层:表示层:看到的文件逻辑层:文件系统,存储引擎物理层:元数据+数据关系型..
分类:数据库   时间:2015-07-29 06:44:19    阅读次数:140
类型安全 与 线程安全 、异常安全、事务安全
(1)类型安全 类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域。“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制;有的时候也用“类型安全”形容某个程序,判别的标准在于该程序是否隐含类型错误。类型安全的编程语言与类型安全的程序之间,没有必然联系。好的程序员可以使用类型不那么安全的语言写出类型相当安全的程序,相反的,差一点儿的...
分类:编程语言   时间:2015-07-17 12:01:45    阅读次数:198
vector 初始化所有方法
简介:vector可用于代替C中的数组,或者MFC中的CArray,从许多说明文档或者网上评论,一般一致认为应该多用vector,因为它的效率更高,而且具备很好的异常安全性。而且vector是STL推荐使用的默认容器,除非你知道你有特殊需要,使用vector不能满足你的需求,例如需要容器在head和...
分类:其他好文   时间:2015-06-25 21:00:11    阅读次数:133
实现的指导方针
1、异常安全 出异常后,不占有资源,也不破坏数据涉及资源型语句,最好单独写成一行。因为同一行语句,执行顺序是不确定。// 试想,如果执行顺序是 new A -> priority() -> shared_ptr// 如果priority()执行中出现异常,那么new A执行后的资源将无法释放dea....
分类:其他好文   时间:2015-06-09 17:04:48    阅读次数:143
【c++】异常安全深赋值
// 深拷贝,异常安全的深赋值 #include #include using namespace std; class String { public: String(const char *str = " ") { m_data = new char[strlen(str) + 1]; strcpy(m_data, str); } String(const String...
分类:编程语言   时间:2015-06-05 17:32:26    阅读次数:144
63条   上一页 1 2 3 4 5 6 7 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!