【发布时间】:2021-05-19 13:35:39
【问题描述】:
我想 curry 一个带有抽象参数的函数。这让我的编译器很生气:
#include <functional>
class MyAbstractParentClass {
public:
virtual void someVirtualMethod() = 0;
};
class MyConcreteChildClass: public MyAbstractParentClass {
public:
virtual void someVirtualMethod() override {}
};
void myFunction(const MyAbstractParentClass& myAbstractObject) {}
int main(int argc, const char * argv[]) {
const MyAbstractParentClass& myChildObject = MyConcreteChildClass();
myFunction(myChildObject); // all good here
const auto myCurriedFunction = std::bind(myFunction, myChildObject); // error here
myCurriedFunction(); // we never get here
}
有没有一种方法可以在不借助指针的情况下完成这项工作?
【问题讨论】:
标签: c++ functional-programming abstract-class currying