栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Effective C++ 09 杂项讨论

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Effective C++ 09 杂项讨论

9. 杂项讨论 条款 53:不要轻忽编译器警告

许多程序员习惯性地忽略编译器警告。他们认为,毕竟,如果问题很严重,编译器应该给一个错误信息而非警告信息,不是吗?

一旦从某个特定编译器的警告信息获得经验,你将学会了解,不同的信息意味什么 —— 那往往和它们“看起来”的意义十分不同!尽管一般认为,写出一个在最高警告级别下也无任何警告信息的程序最是理想,然而一旦有了上述的经验和对警告信息的深刻理解,你倒是可以选择忽略某些警告信息。不管怎样说,在你打发某个警告信息之前,请确定你了解它意图说出的精确意义。这很重要。

记住,警告信息天生和编译器相依,不同的编译器有不同的警告标准。所以草率编程然后依赖编译器为你指出错误,并不可取。

请记住:

  • 严肃对待编译器发出的警告信息。努力在你的编译器的最高警告级别下争取“无任何警告”的荣誉。
  • 不要过度依赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同。一旦移植到另一个编译器上,你原本依赖的警告信息有可能消失。

条款 54:让自己熟悉包括 TR1 在内的标准

C++98 列入的 C++ 新标准程序库主要成分有:

  • STL,覆盖容器、迭代器、算法、函数对象、各种容器适配器和函数对象适配器。
  • iostream,覆盖用户自定义缓冲功能、国家化 I/O 以及预先定义好的对象 cin、cout、cerr 和 clog。
  • 国际化支持,包括多区域能力。想 wchar_t 和 wstring 等类型都对促进 Unicode 有所帮助。
  • 数值处理,包括复数模板和纯数值数组。
  • 异常阶层体系,包括 base class exception 以及 derived class logic_error 和 runtime_error,以及更深继承的各个 class。
  • C89 标准程序库。

TR1 详细叙述了 14 个新组件,统统都放在 std 命名空间,更正确地说是在其嵌套命名空间 tr1 内。TR1 组件有:

  • 智能指针;
  • tr1::function;
  • tr1::bind;
  • Hash table;
  • 正则表达式;
  • Tuple;
  • tr1::array;
  • tr1::mem_fn;
  • tr1::reference_wrapper;
  • 随机数生成工具;
  • 数学特殊函数;
  • C99 兼容扩充;
  • Type trait;
  • tr1::result_of。

请记住:

  • C++ 标准程序库的主要机能是由STL、iostreams、locales 组成。并包含 C99 标准程序库。
  • TR1 添加了智能指针(例如 tr1::shared_ptr)、一般化函数指针(tr1::function)、hash-based 容器、正则表达式)以及另外 10 个组件的支持。
  • TR1 自身只是一份规范。为获得 TR1 提供的好处,你需要一份实物。一个好的实物来源是 Boost。

条款 55:让自己熟悉 Boost

Boost 是一个 C++ 开发者集结的社群,也是一个可自由下载的 C++ 程序库群,它的网址是 https://boost.org 。

请记住:

  • Boost是一个社群,也是一个网站。致力于免费、源码开发、同僚复审的 C++ 程序库开发。Boost 在 C++ 标准化过程过程中扮演深具影响力的角色。
  • Boost 提供许多 TR1 组件实现品,以及其他许多程序库。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号