Size: a a a

2020 August 06

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
И можно пользоваться, как нормальным типом.
catdog_func function_to_use;
Т.е.
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
У std::function немаленький оверхед из-за type erasure
Чё за type erasure?
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
catdog_func function_to_use;
Т.е.
Ммм, интересненько
источник

CC

Cool Cooler in C++ Together 2.0
Спс
источник

RZ

Rika Z in C++ Together 2.0
так разве нельзя делать?
источник

s

std::mpa in C++ Together 2.0
твой arrive.size() -> size_t
а это просто ворнинг, судя по всему
источник

K

Kana in C++ Together 2.0
Rika Z
так разве нельзя делать?
Можно
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
Чё за type erasure?
std::function может оборачивать не только указатели на функции, но и замыкания, да ещё и любой объект с operator(). При этом целевой код не требует никаких изменений либо генерации чего-либо для каждого типа, это отличается от шаблонов, где компилятор под капотом генерирует отдельную функцию для каждого типа, с которыми он используется
источник

s

std::mpa in C++ Together 2.0
🦊fox.cpp
std::function может оборачивать не только указатели на функции, но и замыкания, да ещё и любой объект с operator(). При этом целевой код не требует никаких изменений либо генерации чего-либо для каждого типа, это отличается от шаблонов, где компилятор под капотом генерирует отдельную функцию для каждого типа, с которыми он используется
получается это std::make_callable?
источник

🦊

🦊fox.cpp in C++ Together 2.0
std::mpa
получается это std::make_callable?
Примерно да
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
std::function может оборачивать не только указатели на функции, но и замыкания, да ещё и любой объект с operator(). При этом целевой код не требует никаких изменений либо генерации чего-либо для каждого типа, это отличается от шаблонов, где компилятор под капотом генерирует отдельную функцию для каждого типа, с которыми он используется
Не понял чёт
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
std::function может оборачивать не только указатели на функции, но и замыкания, да ещё и любой объект с operator(). При этом целевой код не требует никаких изменений либо генерации чего-либо для каждого типа, это отличается от шаблонов, где компилятор под капотом генерирует отдельную функцию для каждого типа, с которыми он используется
А чё за замыкания?
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
Не понял чёт
Ну значит не парь голову
источник

🦊

🦊fox.cpp in C++ Together 2.0
Поймёшь, когда потребуется
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
А чё за замыкания?
Всему свое время
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
Поймёшь, когда потребуется
Это да, есть такое
источник

🦊

🦊fox.cpp in C++ Together 2.0
Про лямбды уже знаешь?
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
Про лямбды уже знаешь?
ну слышал
и даже юзал в плюсах
ну тупо чей-то пример скопировал
типа функция объявлена прям в выражении, отдельное объявление или имя для неё не обязательно
источник

CC

Cool Cooler in C++ Together 2.0
Походу бесполезная штука
источник

CC

Cool Cooler in C++ Together 2.0
Типа и так же функции есть
источник