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

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
主站蜘蛛池模板: 武城县| 杨浦区| 类乌齐县| 石柱| 什邡市| 德庆县| 横峰县| 昆山市| 壤塘县| 怀宁县| 贡觉县| 昌图县| 开平市| 通州区| 林周县| 股票| 高州市| 井陉县| 宁明县| 麻江县| 宣化县| 开平市| 禹州市| 商南县| 东乡| 武邑县| 黄浦区| 凤翔县| 昌江| 台南市| 正定县| 南和县| 青龙| 河东区| 华阴市| 玉溪市| 阜康市| 合作市| 新和县| 东城区| 昌宁县|