2
У меня есть карта, созданный как часть решенияподталкивания пример лямбда
enum Opcode {
OpFoo,
OpBar,
OpQux,
};
// this should be a pure virtual ("abstract") base class
class Operation {
// ...
};
class OperationFoo: public Operation {
// this should be a non-abstract derived class
};
class OperationBar: public Operation {
// this should be a non-abstract derived class too
};
std::unordered_map<Opcode, std::function<Operation *()>> factory {
{ OpFoo, []() { return new OperationFoo; } }
{ OpBar, []() { return new OperationBar; } }
{ OpQux, []() { return new OperationQux; } }
};
Opcode opc = ... // whatever
Operation *objectOfDynamicClass = factory[opc]();
Но, к сожалению, мой компилятор GCC-4.4.2 не поддерживает лямбда-функции.
Я хотел бы альтернативный (читаемый) реализация для этого с использованием библиотеки повышающего (лямбда/феникс)
Есть ли способ SNEEK в C++ зЬй:;. Лямбды и СТД :: функции в мой компилятор -std = C++ 0x, варианты, как это не удается ... :(
PS: Просьба читаемым Раствора