关于本章
Function是programming language的核心:
1) 按照**function** and data model,它是重要组成部分,并且**Uniform function model**,参见 C++\Language-reference\Basic-concept\index.md
2) Function as first-class citizen: 使用这个特性,能够带来非常多的便利,参见C++\Language-reference\Functions\Function-as-first-class-citizen
本章描述C++中关于function的方方面面,主要内容如下:
| 章节 | 简介 |
|---|---|
| Function | 介绍了C++中function的概念、分类、callable、function object等概念 |
| Function-declaration | 函数的声明与定义 |
| Function-call | 介绍函数调用的相关内容 |
| Lambda-expression | 介绍lambda表达式 |
| Variadic-function | 变参函数 |
| First-class-function | 如何将function作为first class citizen |
发展概述
C++11
1) perfect forwarding(完美转发): 参见C++\Language-reference\Reference\Perfect-forwarding。
2) variadic function: 参见C++\Language-reference\Functions\Variadic-function。
3) return multiple value: std::tuple、std::tie
C++17
1) return multiple value: structured binding
2) std::apply、std::invoke