• 《Effective C++》知识点(9)--杂项讨论


    53. 不要忽视编译器的警告

        53.1 严肃对待编译器发出的警告信息。努力在你的编译器的最高警告级别下争取"无任何警告"。

                在忽略某个警告之前,请确保你了解它意图说出的精确意义。

        53.2 不要过度依赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同。一旦移植

                到另一个编译器上,你原本依赖的警告信息有可能消失。

    54. 让自己熟悉包括TR1在内的标准程序库

        54.1 C++98标准库

    成分包含
    STL容器、迭代器、算法、函数对象、容器适配器、函数对象适配器
    Iostreams用户自定缓冲功能、国际化I/O,以及cin,cout,cerr,clog
    国际化支持包括多区域能力,如wchar_t、wstring
    数值处理复数模板、纯数值数组
    异常层次体系exception.logic_error,runtime_error
    C89标准程序库1989 C 标准库

       54.2 TR1(Technical Report 1)组件

    组件描述
    智能指针shared_ptr,weak_ptr
    tr1::function

    是个template,以其目标函数的签名(指明参数和返回值类型)为参数。如

    std::tr1::function func

    tr1::bind是第二代绑定工具,比第一代bind1st,bind2nd好用
    其它独立的Hash tables实现sets,multisets,maps,multimaps
    正则表达式字符串查找和替换
    Tuples可持有任意个数的对象,而pari只有两个对象
    tr1::array支持begin,end的数组,它的大小固定
    tr1::mem_fn成员函数指针,扩充了mem_fun,mem_fun_ref的能力
    tr1::reference_wrapper让引用的行为更像对象
    随机数生成工具超越了rand
    数学特殊函数Laguerre多项式、Bessel函数、完全椭圆积分等
    C99兼容扩充一堆函数和模板带进C++
    templateType traits一组traits classes
    tr1::result_of一个template,用来推导函数调用的返回类型

         54.3 TR1自身只是一份规范,为获得TR1提供的好处,你需要取得实现代码。Boost程序库包含

                 了其中10个组件。

    55. 让自己熟悉Boost

         55.1 Boost开发者社区  Boost C++ Libraries

         55.2 Boost组件

    类别包含
    字符串与文本处理类型安全的printf-like格式化动作、正则表达式及语汇单元切割和解析
    容器array、大小可变的bitsets以及多维数组
    函数对象和高级编程如lambda可以随时随地创建函数对象
    泛型编程traits classes
    模板元编程TMP,MPL(元编程程序库)
    数学和数值有理数、八元数和四元数、常见公约数等
    正确性与测试用来将隐式模板接口形式化的程序库
    数据结构类型安全的unions以及tuple程序库
    语言间的支持允许C++和Python之间的无缝互操作性
    内存Pool程序库,用来做出高效率而区块大小固定的分配器以及多变化的智能指针
    杂项CRC检验、日期和时间的处理、在文件系统上来回移动等待

    全书完

  • 相关阅读:
    怎么查找计算机SCI文献? - 易智编译EaseEditing
    了解操作符的那些事(二)
    Jenkins 构建maven项目时提示:No compiler is provided in this environment.
    Git小书系列笔记
    LeetCode刷题复盘笔记—一文搞懂62. 不同路径 && 63. 不同路径 II(动态规划系列第三篇)
    HBase学习笔记(一)
    Moonbirds 是什么,为何公售后能迅速出圈 ?
    【Vue3 源码解析】ref 全家桶
    【水果派不吃灰】半小时搭建Raspberry Pi树莓派可运行环境(不需要显示器,不需要网线)
    这次彻底读透 Redis
  • 原文地址:https://blog.csdn.net/myepicure/article/details/134369695