In my project I am trying to define std::function variable from the virtual method pointer:
#include <functional>
class VirtualClass
{
public:
virtual void foo(int x) = 0;
};
class DerivedClass : public VirtualClass
{
public:
virtual void foo(int x) override
{
// I am foo from DerivedClass;
}
};
int main()
{
DerivedClass derivedClass;
std::function<void(VirtualClass&, int)> fooFunc = &VirtualClass::foo; //doesn't compile
fooFunc(derivedClass, 0);
return 0;
}
This code is compiling in visual studio 2017, but doesn't compile in visual studio 2013. Is it possible to fix a compilation error in vs 2013 without switching to pure pointers and keep using std::function?
Aucun commentaire:
Enregistrer un commentaire