Skip to content

关于本章

本章讨论generic programming中的function相关的内容,

大的思路

对于function generic programming,涉及的内容非常多,因此我们需要建立起一个完整的、清晰的思路,下面是我们的梳理:

维度一: input、output

对于一个function,我们需要关注的是:

input: 入参

output: 出参、返回值

维度二: type、value

value涉及如下topic:

1、value category(涉及pass-by、return-by)

2、perfect forwarding

在generic programming中,type、value是和template parameter、argument息息相关的重要的两个topic。

将上述两个维度进行组合就构成了function generic programming的大部分内容。

Function template

这部分内容放到了 Function-template 章节。

First class function

"first class function"是一个非常重要的内容,这在 First-class-function 章节进行了讨论。"first class function"对于将function用于generic programming非常重要。

以consistent、uniform、generic的方式来操作function

在将function作为template parameter后("first class function"),就需要提供consistent、uniform API来操作function,对于将function用于generic programming是非常重要的,关于"consistent、uniform ",参见 Uniform-consistent-interface-API-syntax 章节。

目前包含如下内容:

1、以uniform、generic来调用function,这在 Callable 章节中进行了讨论

2、以uniform、generic来获得、查询 Callable 的 return type