Сообщение Re[2]: Не распарсил конструкцию с [] от 29.01.2022 20:52
Изменено 29.01.2022 20:53 T4r4sB
Re[2]: Не распарсил конструкцию с []
Здравствуйте, Pzz, Вы писали:
Pzz>Это анонимная функция (функция есть, а имени у нее нету), описанная прям по месту использования. В нонешнем C++ и не такое бывает.
Не функция, а функтор. Класс с перегруженным оператором ().
А код ТСа в ++03 был бы записан примерно так:
Кстати ++03 ещё и не давал структуры с методами имплементировать внутри тела функции, требовал вытаскивать кишки наружу.
Я к тому, чтоб ТС оценил удобство.
Pzz>Это анонимная функция (функция есть, а имени у нее нету), описанная прям по месту использования. В нонешнем C++ и не такое бывает.
Не функция, а функтор. Класс с перегруженным оператором ().
А код ТСа в ++03 был бы записан примерно так:
struct Anon {
Socket socket;
Anon(Socket socket): socket(socket) {}
void operator()(std::vector<unsigned char> data) {
auto task = Async(process1, data); // ну тут не auto понятно
process(data);
task.wait();
socket.send(data, kNoCallback);
}
}
...
socket.receive(Anon(socket));
Кстати ++03 ещё и не давал структуры с методами имплементировать внутри тела функции, требовал вытаскивать кишки наружу.
Я к тому, чтоб ТС оценил удобство.
Re[2]: Не распарсил конструкцию с []
Здравствуйте, Pzz, Вы писали:
Pzz>Это анонимная функция (функция есть, а имени у нее нету), описанная прям по месту использования. В нонешнем C++ и не такое бывает.
Не функция, а функтор. Класс с перегруженным оператором ().
А код ТСа в ++03 был бы записан примерно так:
И он на самом деле именно это и означает, просто такой вот сахарок.
Кстати ++03 ещё и не давал структуры с методами имплементировать внутри тела функции, требовал вытаскивать кишки наружу.
Я к тому, чтоб ТС оценил удобство.
Pzz>Это анонимная функция (функция есть, а имени у нее нету), описанная прям по месту использования. В нонешнем C++ и не такое бывает.
Не функция, а функтор. Класс с перегруженным оператором ().
А код ТСа в ++03 был бы записан примерно так:
struct Anon {
Socket socket;
Anon(Socket socket): socket(socket) {}
void operator()(std::vector<unsigned char> data) {
auto task = Async(process1, data); // ну тут не auto понятно
process(data);
task.wait();
socket.send(data, kNoCallback);
}
}
...
socket.receive(Anon(socket));
И он на самом деле именно это и означает, просто такой вот сахарок.
Кстати ++03 ещё и не давал структуры с методами имплементировать внутри тела функции, требовал вытаскивать кишки наружу.
Я к тому, чтоб ТС оценил удобство.