官术网_书友最值得收藏!

Classical Polymorphism and Generic Programming

The C++ standard library has two distinct, yet equally important, missions. One of these missions is to provide rock-solid implementations of certain concrete data types or functions that have tended to be useful in many different programs, yet aren't built into the core language syntax. This is why the standard library contains std::string, std::regex, std::filesystem::exists, and so on. The other mission of the standard library is to provide rock-solid implementations of widely used abstract algorithms such as sorting, searching, reversing, collating, and so on. In this first chapter, we will nail down exactly what we mean when we say that a particular piece of code is "abstract," and describe the two approaches that the standard library uses to provide abstraction: classical polymorphism and generic programming.

We will look at the following topics in this chapter:

  • Concrete (monomorphic) functions, whose behavior is not parameterizable
  • Classical polymorphism by means of base classes, virtual member functions, and inheritance
  • Generic programming by means of concepts, requirements, and models
  • The practical advantages and disadvantages of each approach
主站蜘蛛池模板: 平阴县| 永登县| 邳州市| 闽侯县| 昌黎县| 梅州市| 本溪市| 三台县| 泗洪县| 内江市| 邢台县| 淄博市| 乃东县| 芷江| 孟州市| 鹤庆县| 三都| 富蕴县| 陵川县| 德庆县| 兴业县| 金沙县| 元阳县| 合阳县| 工布江达县| 东乌珠穆沁旗| 资兴市| 米易县| 米泉市| 西贡区| 阿克苏市| 偏关县| 梅州市| 遂平县| 仪征市| 安国市| 买车| 镇坪县| 古田县| 邢台市| 双牌县|