В чем разница между std::atomic::load() и std::atomic::exchange()?
👍 load() атомарно читает значение, exchange() атомарно заменяет и возвращает старое
🤔 load() блокирует потоки, exchange() не блокирует
👏 load() работает быстрее, exchange() безопаснее
🌚 load() не имеет побочных эффектов, exchange() изменяет все копии объекта
👍 load() атомарно читает значение, exchange() атомарно заменяет и возвращает старое
🤔 load() блокирует потоки, exchange() не блокирует
👏 load() работает быстрее, exchange() безопаснее
🌚 load() не имеет побочных эффектов, exchange() изменяет все копии объекта
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что выведет код?
❤️ 1 4 8
🔥 1 4 4
🙏 Зависит от платформы
🌚 Ошибка компиляции
Библиотека C/C++ разработчика
❤️ 1 4 8
🔥 1 4 4
🙏 Зависит от платформы
🌚 Ошибка компиляции
Библиотека C/C++ разработчика
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
💼⌛️ ТОП-5 причин, почему программист не может долго найти работу
Почему некоторые разработчики остаются "между работами" месяцы?
Не всегда дело в нехватке вакансий или «рынок просел». Часто дело в подходе к поиску проекта. Вроде бы есть опыт, стек, даже pet-проекты, но офферов всё нет.
Часто корень проблемы — неумение продать себя правильно. Отказ выполнять тестовые задания, считая их ненужными или обидными. Кроме того, нежелание рассматривать стажировки как стартовую площадку для получения опыта и расширения профессиональных связей также может замедлить процесс трудоустройства. И это далеко не все возможные причины.
🔗 Подробнее в статье
🐸 Библиотека джависта
Почему некоторые разработчики остаются "между работами" месяцы?
Не всегда дело в нехватке вакансий или «рынок просел». Часто дело в подходе к поиску проекта. Вроде бы есть опыт, стек, даже pet-проекты, но офферов всё нет.
Часто корень проблемы — неумение продать себя правильно. Отказ выполнять тестовые задания, считая их ненужными или обидными. Кроме того, нежелание рассматривать стажировки как стартовую площадку для получения опыта и расширения профессиональных связей также может замедлить процесс трудоустройства. И это далеко не все возможные причины.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что произойдет при использовании memcpy для копирования объекта с виртуальными функциями?
❤️ Объект будет правильно скопирован
🔥 Виртуальная таблица не будет скопирована правильно
🙏 Компилятор выдаст ошибку
🌚 Это неопределенное поведение
Библиотека C/C++ разработчика
❤️ Объект будет правильно скопирован
🔥 Виртуальная таблица не будет скопирована правильно
🙏 Компилятор выдаст ошибку
🌚 Это неопределенное поведение
Библиотека C/C++ разработчика
📚 Загадочная библиотека setjmp.h — неочевидный инструмент для управления потоком выполнения
Библиотека setjmp.h предоставляет два необычных макроса:
• setjmp — сохраняет текущее состояние программы (регистры, стек) в буфер jmp_buf
• longjmp — «откатывает» выполнение к сохранённому состоянию, как прыжок во времени
⚠️ Осторожно!
• Не заменяет исключения — нет вызова деструкторов (как в C++)
• Опасность утечек — если между setjmp и longjmp выделялась память, она не освободится
• Портит стек — может сломать логику функций
🛠 Где может пригодиться?
• Обработка критических ошибок (а-ля «аварийный выход»)
• Код для встраиваемых систем, где нужно быстро восстановить состояние
• Нестандартные хаки (но лучше так не делать 😈)
Библиотека C/C++ разработчика
Библиотека setjmp.h предоставляет два необычных макроса:
• setjmp — сохраняет текущее состояние программы (регистры, стек) в буфер jmp_buf
• longjmp — «откатывает» выполнение к сохранённому состоянию, как прыжок во времени
#include <stdio.h>
#include <setjmp.h>
jmp_buf jump_buffer;
void risky_function() {
printf("Готовимся к прыжку...\n");
longjmp(jump_buffer, 42); // Прыжок обратно в setjmp!
}
int main() {
int ret = setjmp(jump_buffer);
if (ret == 0) {
printf("Первая инициализация...\n");
risky_function();
} else {
printf("Вернулись с кодом: %d\n", ret); // Выведет 42!
}
return 0;
}
⚠️ Осторожно!
• Не заменяет исключения — нет вызова деструкторов (как в C++)
• Опасность утечек — если между setjmp и longjmp выделялась память, она не освободится
• Портит стек — может сломать логику функций
🛠 Где может пригодиться?
• Обработка критических ошибок (а-ля «аварийный выход»)
• Код для встраиваемых систем, где нужно быстро восстановить состояние
• Нестандартные хаки (но лучше так не делать 😈)
Библиотека C/C++ разработчика
Что означает выражение alignof(T)?
❤️ Размер типа T в байтах
🔥 Требуемое выравнивание для типа T
🙏 Смещение типа T в структуре
🌚 Количество байт, которое нужно добавить для выравнивания T
Ответ: 🔥 — возвращает требуемое выравнивание для типа T в байтах.
❤️ Размер типа T в байтах
🔥 Требуемое выравнивание для типа T
🙏 Смещение типа T в структуре
🌚 Количество байт, которое нужно добавить для выравнивания T
alignof(T)
Какое главное отличие std::map от std::unordered_map?
Anonymous Quiz
4%
std::map использует меньше памяти
88%
std::unordered_map не гарантирует порядок элементов
6%
std::map быстрее для операций поиска
3%
std::unordered_map не поддерживает сложные ключи
Что означает аббревиатура SBO в контексте std::string?
Anonymous Quiz
47%
String Buffer Optimization
42%
Small Buffer Optimization
8%
String Binary Operation
4%
Safe Binary Output
Что такое fold expression в C++?
Anonymous Quiz
17%
Выражение с левоассоциативными операторами
70%
Техника свертки вариативных шаблонов с бинарным оператором
8%
Механизм оптимизации при компиляции
4%
Метод сокращения времени выполнения
В чем разница между std::function и указателем на функцию?
Anonymous Quiz
3%
std::function может хранить только глобальные функции
23%
Указатель на функцию работает быстрее, но менее гибкий
59%
std::function может хранить любой вызываемый объект
15%
Между ними нет существенной разницы
Что такое "memory leak" (утечка памяти)?
Anonymous Quiz
5%
Ошибка доступа к неинициализированной памяти
9%
Ошибка чтения за пределами выделенной памяти
66%
Невозможность освободить выделенную память
19%
Слишком большой расход памяти программой
Что такое concepts в C++20?
Anonymous Quiz
5%
Специальные комментарии для документации
71%
Ограничения для шаблонных параметров
9%
Механизм организации классов
14%
Способ создания абстракций
Какое преимущество дает [[nodiscard]] атрибут?
Anonymous Quiz
16%
Запрещает оптимизацию функции
76%
Предупреждает о неиспользовании возвращаемого значения
2%
Делает функцию inline
7%
Запрещает рекурсивные вызовы
Какой метод контейнера STL гарантированно не выбросит исключение?
Anonymous Quiz
8%
push_back()
10%
emplace_back()
67%
size()
15%
at()
Что означает хвостовая рекурсия (tail recursion)?
Anonymous Quiz
69%
Рекурсивный вызов, который возвращает значение без дополнительных вычислений
20%
Рекурсивный вызов другой функции
1%
Запрет на использование рекурсии
10%
Оптимизация вызовов виртуальных функций
Что такое "dead code elimination"?
Anonymous Quiz
65%
Удаление недостижимого кода
21%
Удаление неиспользуемых функций
8%
Удаление закомментированного кода
5%
Оптимизация удаления объектов
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!