- Expert C++
- Vardan Grigoryan Shunguang Wu
- 232字
- 2021-06-24 16:34:06
Deduction
When you call a template function, the compiler needs to figure out the template arguments first, even if not every template argument is specified. Most of the time, it will deduce the missing template arguments from the function arguments. For example, in part B of the preceding function, when you call app_max(5, 8) in line E, the compiler deduces the template argument as an int type, (int app_max<int>(int,int)), because the input parameters, 5 and 8, are integers. Similarly, line F will be deduced as a float type, that is, float app_max<float>(float,float).
However, what happens if there is confusion during instantiation? For instance, in the commented out line for G of the previous program, depending on the compiler, it might call app_max<double>(double, double), app_max<int>(int, int), or just give a compile error message. The best way to help the compiler deduce the type is to call the function template by giving a template argument explicitly. In this case, if we call app_max<double>(5, 8.0), any confusion will be resolved.
- Reactive Programming with Swift
- 認識編程:以Python語言講透編程的本質
- Java性能權威指南(第2版)
- FFmpeg入門詳解:音視頻原理及應用
- INSTANT Passbook App Development for iOS How-to
- QGIS By Example
- Hands-On Full Stack Development with Go
- PrimeFaces Blueprints
- 區塊鏈項目開發指南
- Backbone.js Testing
- Oracle 12c從入門到精通(視頻教學超值版)
- Beginning PHP
- Android熱門應用開發詳解
- 現代JavaScript編程:經典范例與實踐技巧
- JavaScript前端開發程序設計教程(微課版)