Стандарт C++ гарантирует, что можно зарегистрировать минимум N функций через
std::atexit. Найди баг в этом коде:#include <cstdlib>
#include <iostream>
void dummy_handler() {
static int counter = 0;
std::cout << "Handler " << ++counter << "\n";
}
int main() {
// Регистрируем 100 обработчиков
for (int i = 0; i < 100; ++i) {
if (std::atexit(dummy_handler) != 0) {
std::cerr << "Failed at " << i << "\n";
return 1;
}
}
std::cout << "All registered!\n";
return 0;
}
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
В каком порядке вызываются функции, зарегистрированные через std::atexit?
Anonymous Quiz
4%
В случайном порядке
3%
Параллельно
44%
В порядке регистрации (FIFO)
42%
В обратном порядке регистрации (LIFO)
6%
Зависит от компилятора
Какое количество потоков может одновременно удерживать shared_lock на один shared_mutex?
Anonymous Quiz
16%
1
2%
2
21%
Количество ядер процессора
52%
Неограниченное
9%
256
❤2😁1
Что такое "ABI stability" и почему она важна для библиотек?
Anonymous Quiz
10%
Стабильность API между версиями
85%
Бинарная совместимость интерфейсов между версиями
3%
Стабильность алгоритмов
1%
Защита от багов
1%
Это касается только ассемблера
Какая сложность у std::unordered_map::find() в худшем случае?
Anonymous Quiz
17%
O(1)
14%
O(log n)
56%
O(n)
11%
O(n log n)
2%
O(√n)
Что такое Two-Phase Lookup в C++ templates?
Anonymous Quiz
68%
Двухэтапная компиляция шаблонов: проверка синтаксиса, затем инстанцирование
3%
Поиск в двух namespace одновременно
5%
Техника оптимизации шаблонного кода
22%
Механизм разрешения имен: dependent и non-dependent names
1%
Способ множественного наследования
Какая основная проблема решается с помощью std::launder?
Anonymous Quiz
13%
Утечки памяти
7%
Race conditions
7%
Stack overflow
12%
Deadlocks
61%
Pointer provenance
Что означает "pointer provenance"?
Anonymous Quiz
4%
Размер указателя
78%
Происхождение и права доступа указателя
5%
Тип указателя
5%
Адрес указателя
8%
Константность указателя
Какие типы подходят для std::start_lifetime_as?
Anonymous Quiz
19%
Любые типы
30%
Только POD типы
31%
Только implicit-lifetime types
11%
Только классы с виртуальными функциями
10%
Только примитивные типы
При вызове std::vector::reserve() с размером меньше текущей ёмкости вектора, что произойдёт с итераторами?
Anonymous Quiz
26%
Все итераторы инвалидируются
10%
Итераторы остаются валидными, но указывают на новую память
31%
Все итераторы остаются валидными
18%
Только итераторы на конец инвалидируются
15%
Поведение не определено
Что гарантирует std::chrono::steady_clock в отличие от system_clock?
Anonymous Quiz
32%
Большую точность
21%
Привязку к UTC
8%
Меньшее потребление ресурсов
32%
Никогда не идёт назад
8%
Работу на всех платформах
😁2
std::optional<std::string> get_name() {
return "Alice";
}
int main() {
auto result = get_name()
.transform([](auto&& s) { s += " Smith"; return s; })
.transform([](auto&& s) { s += " Jr."; return s; });
std::cout << *result << std::endl;
std::cout << *get_name() << std::endl;
}📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM