我想在不实现类的情况下使用lambdas实现多态访问者.我已经有了一个基础,但我正在为我的lambdas参数的类型演绎而苦苦挣扎.
假设我有一些遗留代码库,决定使用类型标签作为多态类型,如下所示:
enum class ClassType
{
BaseType = 0, TypeA, TypeB
};
class BaseType
{
public:
virtual ~BaseType() {}
ClassType getType() const
{ return type; }
protected:
ClassType type;
};
class TypeA : public BaseType
{
public:
static const ClassType Type = ClassType::TypeA;
explicit TypeA(int val) : val(val)
{ type = ClassType::TypeA; }
virtual ~TypeA() {}
int val;
};
class TypeB : public BaseType
{
public:
static const ClassType Type = ClassType::TypeB;
explicit TypeB(std::string s) : s(s)
{ type = …Run Code Online (Sandbox Code Playgroud)