【发布时间】:2017-05-24 07:01:45
【问题描述】:
我有一个练习,我需要编写一个函数。功能方案看起来像
auto add(int a){
}
我需要能够用很多括号调用这个函数:
add(1)(2)(3); // 6
add(1)(2)(3)(4); // 10
add(1)(2)(3)(4)(5); // 15
但我不知道在这种情况下我应该使用哪个 C++ 功能。我听说我应该使用仿函数,但我不知道在这种情况下这是否是最好的主意。
【问题讨论】:
-
你想做什么?为什么你认为你需要这样称呼它?
-
你可以返回一个指向自身的函数指针
-
@M.M 函数指针不起作用 - 它必须在某处保持状态。
-
@M.M:Herb Sutter 有一个旧的“本周大师”专栏证明你做不到。你甚至不能声明那个函数:它的签名由它的参数和它的返回类型组成,它的返回类型必须包含签名。这就是无限递归。
-
@MSalters O rly?