摘要:
1. Exception specifications作为函数声明的一部分,用于指出(并不能限制)函数可能会抛出的异常函数.C++规定,一个拥有exception specification的函数指针只能被赋予一个有着相同或更为局限的exception specification的函数地址,因而编译 阅读全文
摘要:
1. Boost是一个C++开发者集结的社群,也是一个可自由下载的C++程序库群,它的网址是http://Boost.org.C++组织和网站有很多,但Boost有两个特性是其他组织无可匹敌的:第一,Boost由C++标准委员会成员创设,因此和C++标准委员会之间有着独一无二的密切关系,作为一个"可... 阅读全文
摘要:
1. TR1(Technical Report 1)是C++ 03标准的一个扩展,它并不属于C++ 03标准,只是一份草稿文件,用于指出下一版C++标准很可能吸收的特性.目前,它的大部分已被C++ 11采纳,成为官方标准.2. C++ 98列出的标准库的组成: STL(Standard Templ... 阅读全文
摘要:
1. 编译器的警告可能给出很重要的信息,例如:class B{public: virtual void f() const; ...};class D:public B{public: virtual void f(); ...}; 由于B中的f是const成员函数,而D中... 阅读全文
摘要:
1. placement new和place ment delete指的是正常的operator new和operator delete的重载版本,所谓的正常的operator new和delete,指的是拥有以下正常签名式的版本:void* operator new(std::size_t) th... 阅读全文
摘要:
1. 实现定制的operator new和operator delete需要满足一定的要求. 以operator new而言:实现一致性operator new必须返回正确的值;内存不足时必得调用new-handling函数;必须有对付零内存需求的准备;需避免不慎掩盖正常形式的new;如果有能力供... 阅读全文
摘要:
1. 替换标准库提供的operator new或operator delete通常基于以下三个理由: 1). 用来检测运行上的错误.将"new 所得内存"delete掉却不幸失败会导致内存泄露,多次对同一块"new所得内存"施行delete会导致未定义行为,如果让operator new持有一串动... 阅读全文
摘要:
1. 当operator new无法满足某一内存分配需求时,它会先调用一个客户指定的错误处理函数(如果客户未指定,它就会抛出异常),所谓的new-handler.为了指定这个"用以处理内存不足"的函数,客户必须调用set_new_handler,那是声明于的一个标准库函数:namespace std... 阅读全文
摘要:
1. 模板元编程(template mataprogramming,TMP)是编写C++程序并执行于编译期的过程,"所谓template mataprogram(模板元程序),是以C++写成,执行于C++编译器内的程序.一旦TMP程序结束执行,其输出,也就是从templates具现出来的若干C++源... 阅读全文
摘要:
1. STL迭代器分类: input迭代器:只能一次一步向前移动,客户只可读取(不能涂写)且只能读取一次它们所指的东西,模仿指向输入文件的阅读指针.例如istream_iterators output迭代器:与input迭代器类似,但"一切只为输出",只能一次一步向前移动,客户只可涂写(不能读取... 阅读全文