C библиотеки и C++ обёртка
C libraries be like: struct_of_void_stars* stuff_init(); void stuff_do_work(void* data, int size); void stuff_destroy(); Тем временем C++ template <typename T> class StuffRAIIWrapper { public: StuffRAIIWrapper() : m_stuff(stuff_init()) {}; ~StuffRAIIWrapper() { stuff_destroy(); } void run(T* data, size_t size) { stuff_do_work(data, static_cast<int>(size * sizeof(T))); } private: struct_of_void_start* m_stuff; };
На изображении показано сравнение простой C-библиотеки с громоздкой C++-обёрткой, использующей шаблон и RAII. Шутка в том, что несколько функций C превращаются в длинный класс C++, высмеивая склонность C++-разработчиков усложнять простой код. EN: The image compares a simple C library with a bulky C++ wrapper using templates and RAII. The joke is that a few C functions turn into a long C++ class, poking fun at C++ developers’ tendency to overcomplicate simple code.
code screenshot / скриншот кодаblack panel / чёрная панельwhite text / белый текстC code / код на CC++ class / класс C++template declaration / объявление шаблонаcomputer programming / программированиеtext editor / текстовый редакторfunction calls / вызовы функцийpointer / указательdata buffer / буфер данныхdestructor / деструктор
- @ithueti / 4166 2021-05-21
- @right_wing_dev_squads / 2846 2021-11-05
- Type
- image
- Size
- 722×800 · 70.3 KiB
- Mood
- саркастичный, абсурдный
- Language
- ru
- Added