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

  • Expert C++
  • Vardan Grigoryan Shunguang Wu
  • 247字
  • 2021-06-24 16:34:05

Understanding and Designing Templates

Templates are a unique feature of C++ by which functions and classes have the ability to support generic data types in other words, we can implement a function or class independent of a particular data type; for example, a client may request a max() function to handle different data types. Instead of implementing and maintaining many similar functions by using function overloading, we can just implement one max() and pass the data type as a parameter. Moreover, templates can work together with multiple inheritance and operator overloading to create powerful generic data structures and algorithms in C++ such as the Standard Template Library (STL). Additionally, templates can also be applied to compile-time computation, compile-time and runtime code optimization, and more.

In this chapter, we will learn about the syntax of function and class templates, their instantiations, and their specializations. Then, we will introduce variadic templates and their applications. Next, we will discuss template parameters and the corresponding arguments that are used for instantiating them. After that, we'll learn how to implement a type trait and how to use this type of information to optimize algorithms. Finally, we will present techniques that we can use to speed up programs when they're executed, which includes compile-time computation, compile-time code optimization, and static polymorphism.

This chapter will cover the following topics:

  • Exploring function and class templates
  • Understanding variadic templates
  • Understanding template parameters and arguments
  • What are traits?
  • Template meta-programming and its applications
主站蜘蛛池模板: 西平县| 佳木斯市| 淮北市| 萨迦县| 若羌县| 桑日县| 泾源县| 育儿| 三河市| 石林| 迭部县| 牟定县| 万宁市| 霞浦县| 成安县| 德保县| 扬中市| 军事| 息烽县| 十堰市| 永吉县| 平乐县| 金平| 富阳市| 嘉峪关市| 顺平县| 新干县| 林周县| 且末县| 阿城市| 吐鲁番市| 铜鼓县| 宜宾县| 伽师县| 讷河市| 阿拉善盟| 盐亭县| 石景山区| 上栗县| 泗洪县| 朝阳市|