首先,对标题不太清楚感到抱歉,用代码解释起来容易得多:
给定这样的函数原型:
auto sum(int a){
...
}
我希望能够以这种方式使用它:
add(3) == 3 //true
add(1)(2)(3) == 6 //true
我只是想以此为个人知识,所以如果有人指出我应该学习哪种结构来实现这一目标,我将不胜感激(我很确定我必须使用std :: function,但是我不必知道如何),而不是给我简单的解决方案。
谢谢大家。
最佳答案
可能不是确切答案,但是您可以尝试以下方式:
class foo {
int data = 0;
public:
foo& operator()(int i) { data += i; return *this; }
bool operator==(int i) { return this-> data == i; }
void print() const { cout << data << endl; }
};
int main() {
foo add;
add(1)(2)(3);
add.print();
cout << (add(3) == 9 ? "Same" : "Not same") << endl;
}