public void run() {
classWithMethodToFire.doSomething( parameter );
}
}); подскажите пожалуйста, возможно что-то такое в С++?)) ну мало ли) тип метод переопределить прямо пока инстанс создаешь
нет, прям такое невозможно, полнофункциональных анонимных классов у нас нет, но зато у нас есть гибкие лямбды. если у Runnable есть только один метод, run, то ему на замену просится библиотечный класс std::function<void()>, умеющий оборачивать произвольную функцию с заданной сигнатурой, и в итоге отправка задачи на executor будет выглядеть как-то так: class Executor { … void execute(std::function<void(const ExecutionParameters&)/*здесь может быть указана любая сигнатура*/> task); }; … taskExecutor.execute ( [&]{classWithMethodToFire.doSomething(parameter);} );
ну только зачем там std::function
Ну вообще можно внутри лямбды определить класс и его вернутт
затем, что function - полиморфная обертка, как в Java, и иногда ее нужно положить в некую очередь. С шаблонной магией не все хотят мучаться.
Так это лямбда по-старому Java-скому (сейчас у них уже полноценные лямбды есть)
я к тому, что у них интересна фича, что можно инплейс новый класс сразу с несколькими методами определить, а лямбда - это более короткий в записи частный случай класса с одим методом =)
это даааа! Но это уродская фича.
Обсуждают сегодня