Что такое линкер (linker) в процессе сборки C++ программы?
Anonymous Quiz
3%
Инструмент, преобразующий исходный код в объектный файл
91%
Инструмент, объединяющий объектные файлы в исполняемый файл
5%
Инструмент, обрабатывающий директивы #include
1%
Инструмент, оптимизирующий байт-код программы
1%
Инструмент, проверяющий синтаксис исходного кода
😁2🤔1
Что такое «объектоподобный» (object-like) макрос в C++?
Anonymous Quiz
26%
Макрос, имитирующий методы класса без скобок
15%
Макрос без списка параметров, подставляющий фиксированный текст
10%
Макрос, принимающий объект как единственный аргумент
46%
Макрос, генерирующий определение структуры или класса
3%
Макрос, работающий только с объектами стандартной библиотеки
Какой из перечисленных элементов относится к области видимости файла (file scope)?
Anonymous Quiz
3%
Переменные, объявленные внутри функции
9%
Переменные, объявленные внутри блока {}
28%
Переменные, объявленные с ключевым словом static внутри класса
57%
Переменные, объявленные вне всех функций и классов
3%
Параметры функций и лямбда-выражений
Что гарантирует концепт std::sized_sentinel_for?
Anonymous Quiz
21%
Что разность итератора и sentinel вычислима за O(1)
12%
Что sentinel хранит количество оставшихся элементов
35%
Что диапазон имеет фиксированный размер на этапе компиляции
22%
Что sentinel совпадает по типу с итератором диапазона
11%
Что итератор поддерживает произвольный доступ к элементам
Forwarded from Библиотека задач по C++ | тесты, код, задания
🧩 Задача на выходные: правильная ли это BST?
Классическая ловушка на собеседованиях. Этот код проверяет BST неправильно:
Для дерева:
Функция вернёт true. Но это не BST!
✏️ Объясни баг и перепиши функцию корректно.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Классическая ловушка на собеседованиях. Этот код проверяет BST неправильно:
bool isValidBST(TreeNode* node) {
if (!node) return true;
if (node->left && node->left->val >= node->val) return false;
if (node->right && node->right->val <= node->val) return false;
return isValidBST(node->left) && isValidBST(node->right);
}
Для дерева:
5
/ \
1 4
/ \
3 6
Функция вернёт true. Но это не BST!
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое "aggregate initialization" и как изменилось в C++20/23?
Anonymous Quiz
25%
Инициализация через список инициализаторов std::initializer_list
4%
Инициализация массивов встроенных типов
7%
Механизм инициализации базовых классов через super{}
61%
Прямая инициализация полей через {} без конструктора
4%
Автоматическая генерация конструкторов компилятором
Какова роль препроцессора в компиляции C++?
Anonymous Quiz
4%
Генерирует машинный код из AST дерева
1%
Проверяет типобезопасность программы
3%
Распределяет память под глобальные переменные
91%
Обрабатывает директивы # до начала компиляции
1%
Связывает объектные файлы в исполняемый файл
Что означает [[no_unique_address]] для членов класса?
Anonymous Quiz
9%
Запрещает создание нескольких объектов одного класса
7%
Запрещает выравнивание члена по границе слова
48%
Разрешает двум членам иметь одинаковый адрес при any условии
30%
Позволяет пустым членам занимать 0 байт в памяти
5%
Помечает член как не влияющий на sizeof
Что правильно описывает inline переменную (C++17)?
Anonymous Quiz
33%
Переменная вставляется в каждую единицу трансляции отдельно
33%
Переменная имеет единственный экземпляр во всей программе
4%
Переменная автоматически становится constexpr
26%
inline для переменных недопустим, только для функций
5%
Переменная помещается в стек, а не в BSS/data-сегмент
При каком условии компилятор перестаёт неявно генерировать конструктор копирования?
Anonymous Quiz
35%
Если в классе объявлен любой конструктор с параметрами
30%
Если в классе объявлен деструктор или move-конструктор
9%
Если в классе есть хотя бы одно поле с модификатором const
15%
Если базовый класс не имеет конструктора по умолчанию
11%
Если в классе объявлен operator==
Сколько пользовательских преобразований компилятор может применить в одной неявной цепочке?
Anonymous Quiz
44%
Неограниченное количество, пока типы совместимы
24%
Ровно одно пользовательское преобразование
4%
Не более двух пользовательских преобразований
11%
Три: одно через конструктор, одно через оператор, одно встроенное
17%
Зависит от уровня оптимизации компилятора
Чем sentinel принципиально отличается от итератора конца?
Anonymous Quiz
12%
Sentinel всегда является указателем на нулевой элемент
35%
Sentinel может иметь другой тип, нежели итератор
22%
Sentinel обязательно хранит состояние диапазона внутри
18%
Sentinel не может использоваться в алгоритмах стандартной библиотеки
13%
Sentinel всегда является константным объектом диапазона
Forwarded from Библиотека задач по C++ | тесты, код, задания
🔥 Найди баг: копирование строки сломало указатель
‼️ Задача: найди баг (если он есть), объясни, почему он связан с SSO, и предложи исправление.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
#include <string>
#include <iostream>
struct Token {
std::string value;
const char* ptr;
Token(const std::string& s) : value(s), ptr(value.data()) {}
};
int main() {
Token t1("hi");
Token t2 = t1; // копируем
std::cout << t1.ptr << "\n"; // "hi"
std::cout << t2.ptr << "\n"; // ???
}
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Чем std::unique_lock отличается от std::lock_guard?
Anonymous Quiz
18%
std::unique_lock не освобождает мьютекс автоматически
17%
std::lock_guard поддерживает try_lock, а unique_lock нет
3%
std::unique_lock требует рекурсивного мьютекса
56%
std::unique_lock позволяет отложенный захват, ручное освобождение и перемещение
6%
std::unique_lock работает только с std::condition_variable_any
❤1
Что такое «expression templates» как техника построения DSL в C++?
Anonymous Quiz
18%
Механизм компиляции строк с выражениями C++ во время выполнения самой программы
36%
Техника, откладывающая вычисления до присваивания через дерево типов без временных объектов
6%
Специальный синтаксис для встраивания SQL-запросов непосредственно в C++-код
24%
Способ передачи лямбда-выражений в качестве нетиповых шаблонных параметров класса
15%
Макросы препроцессора, раскрывающиеся в сложные математические выражения кода
Что такое «phantom types» и как они применяются для создания DSL в C++?
Anonymous Quiz
39%
Типы-заглушки без тела, предотвращающие полную специализацию шаблонного класса
5%
Указатели на удалённые объекты, которые компилятор автоматически помечает как невалидные
21%
Анонимные структуры без имени, видимые исключительно внутри одной конкретной функции
22%
Шаблонные параметры, кодирующие ограничения в системе типов, не занимая памяти объекта
12%
Типы, автоматически удаляемые компилятором при отсутствии явных экземпляров в коде
Что вернёт std::filesystem::path("/foo/./bar/../baz").lexically_normal()?
Anonymous Quiz
10%
/foo/./bar/../baz
58%
/foo/baz
23%
/foo/bar/baz
5%
baz
5%
/baz
Для каких операторов оно гарантировано «короткое замыкание» (short-circuit evaluation)?
Anonymous Quiz
11%
Только для &&
3%
Только для ||
11%
Для &&, ||, ?: и оператора запятой ,
30%
Для всех логических операторов включая перегруженные
45%
Для &&, || и тернарного оператора ?:
🤔4
Что такое «частичное упорядочивание» шаблонов функций и когда компилятор его применяет?
Anonymous Quiz
14%
Сортировка шаблонов по количеству параметров для ускорения компиляции
10%
Оптимизация компилятора для инлайнинга шаблонных функций
20%
Порядок инстанциирования шаблонов в единицах трансляции
48%
Механизм выбора наиболее специализированного шаблона при разрешении перегрузки
8%
Механизм ограничения рекурсивных шаблонов через SFINAE