Operators 总结

优质
小牛编辑
131浏览
2023-12-01

为用户自定义类型提供一组正确的关系操作符和算术操作符是非常重要的,而且正确地实现它也是一个重大 的挑战。通过使用Operators库,这个任务大大地简化了,正确性和对称性也随之而来。除此之外,这个库还提供了一组完整的操作符定义,这些类所支持 的概念被适当地命名和定义,可以在定义你的类时明确这些概念(也是通过Operators库!)。在本章中,我们已经看了几个例子,关于如何使用这个库来 改进带有操作符的程序,使程序更为简单,正确性也更有保证。一个可悲的事实是,为用户自定义类型提供重要的关系操作符和算术操作符常常被忽略掉,部分的原 因是由于为了正确获得它们需要做大量的工作。现在这种情形不会再出现了,因为有了Boost.Operators。

在提供关系操作符和算术操作符时要重点考虑的一点是,首先要确认提供它们是有必要的。当类型间存在顺 序关系时,或者在创建数值类型时,总是需要提供操作符的,但对于其它类型,操作符可能就不能清晰地传递设计的意图。操作符几乎总是提供语法上的好处,这种 语法上的好处不应被低估。不幸的是,操作符又是诱人的。明智地使用它们,它们就会发挥巨大的威力。当你决定为一个类增加操作符, Boost.Operators库可以为你的工作提高质量和效率。结论是,你应该在深思熟虑之后再决定是否给你的类增加操作符,当你决定要增加时,就使用 Operators库。

Operators库是多个人的贡献的结果。它从David Abrahams开始,并接受了Jeremy Siek, Aleksey Gurtovoy, Beman Dawes, 和 Daryle Walker等人的有价值的补充。正如多数Boost库一样,无数其它人的贡献才形成了今天这个库。

最后更新:

类似资料

  • 前言 到这里,整个 Shell 编程系列就要结束了,作为总结篇,主要回顾一下各个小节的主要内容,并总结出 Shell 编程的一些常用框架和相关注意事项等。 Shell 编程范例回顾 TODO:主要回顾各小节的内容。 常用 Shell 编程“框架” TODO:通过分析一些实例总结各种常见问题的解决办法,比如如何保证同一时刻每个程序只有一个运行实体(进程)。 程序优化技巧 TODO:多思考,总会有更简

  • sbt核心概念 基于Scala,由于sbt是基于Scala编写的,所以相关的配置语法和Scala很相似 .sbt 工程构建定义 可以定义一个大的 Setting对象序列,最后被转化为一个key-value键值对供sbt使用 可以通过:=,+=或++=配置一个配置 配置是不可变的,仅可以通过转换来修改。例如,一个 Setting对象转换成一个key-value键值对后是构建一个新的Map对象来修改的

  • 在许多方面,Redis体现了一种简易的数据处理方式,其剥离掉了大部分的复杂性和抽象,并可有效的在不同系统里运行。不少情况下,选择Redis不是最佳的选择。在另一些情况里,Redis就像是为你的数据提供了特别定制的解决方案。 最终,回到我最开始所说的:Redis很容易学习。现在有许多的新技术,很难弄清楚哪些才真正值得我们花时间去学习。如果你从实际好处来考虑,Redis提供了他的简单性。我坚信,对于你

  • 总结 现在,你应该已经对如何创建、配置以及维护Subversion版本库有了个基本的认识。我们向您介绍了几个可以帮助您工作的工具。通过这一章,我们说明了一些常见的管理误区,并提出了避免陷入误区的建议。 剩下的,就是由你决定在你的版本库中存放一些什么有趣的资料,并最终通过网络获得这些资料。下一章是关于网络的内容。

  • 总结 我们已经在本章覆盖了许多基础知识,我们讨论了标签和分支的概念,然后描述了Subversion怎样用svn copy命令拷贝目录实现了这些概念,我们也已经展示了怎样使用svn merge命令来在分支之间拷贝修改,或是撤销错误的修改。我们仔细研究了使用svn switch来创建混合位置的工作拷贝,然后我们也讨论了怎样管理和组织版本库中分支的生命周期。 记住Subversion的颂歌:分支和标签是

  • 总结 我们已经覆盖了大多数Subversion的客户端命令,引人注目的例外是处理分支与合并(见第 4 章 分支与合并)以及属性(见“属性”一节)的命令,然而你也许会希望跳到第 9 章 Subversion 完全参考来察看所有不同的命令—怎样利用它们使你的工作更容易。