Можно ли использовать концепт рекурсивно — так, чтобы он ссылался на самого себя?
Anonymous Quiz
10%
Да, рекурсия разрешена и автоматически трактуется как false при достижении предела
29%
Да, но только если рекурсия конечна и завершается через отдельную специализацию
6%
Да, но только через вспомогательный шаблонный класс, не напрямую в теле концепта
50%
Нет, стандарт C++20 явно запрещает рекурсивные концепты
5%
Поведение зависит от реализации компилятора, стандарт не регламентирует это
🚀 Челендж на выходных: полный ленивый pipeline
Собери всё вместе: напиши ленивый pipeline обработки данных без лишних копий и временных контейнеров.
✏️ Задача: реализуй весь pipeline. Можно использовать
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Собери всё вместе: напиши ленивый pipeline обработки данных без лишних копий и временных контейнеров.
// Дано: файл с числами (по одному на строку)
// Задача: найти сумму квадратов чётных чисел из первых 1000 строк
// Наивное решение (неленивое):
// 1. Загрузить всё в vector<int> — O(n) память
// 2. Отфильтровать чётные — ещё O(n)
// 3. Возвести в квадрат — ещё O(n)
// 4. Просуммировать первые 1000 — O(n)
// Ленивое решение должно:
// - Читать файл построчно (не грузить всё)
// - Фильтровать на лету
// - Трансформировать на лету
// - Останавливаться после 1000 элементов
// Скелет:
auto result = lines_from_file("data.txt") // ленивый итератор строк
| parse_ints() // string -> optional<int>
| filter_valid() // убрать nullopt
| filter([](int x){ return x % 2 == 0; }) // только чётные
| transform([](int x){ return x * x; }) // квадрат
| take(1000) // первые 1000
| sum(); // свёртка
// TODO: реализуй каждый адаптер в цепочке
C++20 Ranges или написать адаптеры вручную. Ключевое требование — в любой момент в памяти хранится не более одного элемента из файла.📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Почему в шаблонном классе обращение к члену базового класса через this->member иногда обязательно?
Anonymous Quiz
4%
Это обходной путь конкретного бага в GCC, в Clang такая запись не нужна
10%
this-> принудительно отключает виртуальный диспатч, ускоряя вызов метода
10%
Стандарт явно требует this-> перед всеми членами внутри шаблонного класса
45%
Без this-> возникает неопределенность при наличии множественного наследования класса
31%
Без this-> компилятор ищет имя на первой фазе, не видя зависимых базовых классов
В чём принципиальное преимущество std::pmr::polymorphic_allocator перед шаблонным аллокатором?
Anonymous Quiz
13%
pmr-аллокатор работает быстрее за счёт отсутствия виртуальных вызовов в горячем пути
9%
pmr-аллокатор автоматически дефрагментирует кучу при нехватке непрерывной памяти
43%
Тип контейнера не зависит от конкретного аллокатора — можно менять стратегию в runtime
23%
pmr-аллокатор совместим только с std::pmr-контейнерами и не работает с legacy-кодом
12%
pmr-аллокатор устраняет необходимость в явном delete для всех выделенных объектов
В первой части постов навалили жесткой базы, чтобы вправить мозги на место. Во второй дали конкретные инструменты, фреймворки и пошаговые инструкции, что нужно кодить прямо сейчас.
Часть 1. Введение, юзкейсы и реальность
Разбираемся с терминами, снимаем розовые очки и смотрим, где ИИ реально приносит бабки, а где только жжет нервы:
1. «Так что вообще считается AI-агентом?»
2. «Где тут бот, а где уже AI-агент?»
3. «Не надо пихать AI-агента в каждую задачу»
4. «Что уже можно спокойно делать через AI-агентов?»
5. «А что через AI-агентов пока лучше не трогать?»
Часть 2. Изнанка, ошибки и архитектура
Как всё это устроено под капотом, чтобы не слить бюджет и не наломать дров на старте:
6. «Можно ли просто сесть вечером и собрать себе AI-агента?»
7. «С чего вообще начать, если хочется попробовать AI-агентов»
8. «Почему AI-агент может внезапно начать творить дичь»
9. «Где AI-агенты реально экономят время, а где только добавляют возни»
10. «Почему они жрут столько денег?»
Часть 3. Хардкорная практика (Что делать руками)
Хватит теории. Открываем ноут, запускаем Cursor и делаем нормальные, отказоустойчивые системы:
11. «Почему одного промпта мало?»
12. «Почему AI-агенту мало просто “дать доступ к данным”»
13. «Если не следить за AI-агентом, он быстро начинает жить своей жизнью»
14. «Собрать демку легко. Но как же сделать нормально»
15. «Как сделать, чтобы это не развалилось через неделю?»
Please open Telegram to view this post
VIEW IN TELEGRAM
👏1
Зачем использовать trailing return type auto f() -> ReturnType вместо ReturnType f()?
Anonymous Quiz
6%
Trailing return type работает быстрее — компилятор не сканирует тело функции дважды
4%
Trailing return type обязателен для всех шаблонных функций начиная со стандарта C++14
7%
Trailing return type запрещает возврат по значению — только ссылки и указатели допустимы
49%
Позволяет использовать параметры функции в выражении типа возврата через decltype
34%
Это исключительно синтаксический сахар без каких-либо семантических отличий от префикса
🔥1
Что хранит std::unreachable_sentinel_t в C++20?
Anonymous Quiz
12%
Адрес последнего элемента бесконечного диапазона
6%
Адрес последнего элемента бесконечного диапазона
31%
Ничего — это пустой тип, сравнение всегда false
44%
Специальный маркер для бесконечных диапазонов чисел
7%
Указатель на следующий sentinel в цепочке диапазонов
🤔3
Могут ли virtual функции быть constexpr в C++23 и вычисляться на этапе компиляции?
Anonymous Quiz
39%
Нет, virtual и constexpr взаимно исключают друг друга
23%
Да, виртуальные функции могут быть constexpr — вызов через объект (не указатель) вычислим
9%
Только чистые виртуальные функции (= 0) могут быть constexpr
11%
Да, но только если все классы в иерархии объявлены с final
18%
Нет, constexpr virtual компилируется, но вызов всегда происходит в runtime через vtabl
В каком сегменте бинарного файла хранятся vtable?
Anonymous Quiz
20%
В сегменте .text вместе с кодом функций
11%
В сегменте .bss — нулевая инициализация
18%
В сегменте .data — изменяемые данные
37%
В сегменте .rodata — только для чтения
13%
В сегменте .stack текущего потока
Что произойдёт, если модифицировать контейнер во время итерации через std::ranges::filter_view?
Anonymous Quiz
7%
Итерация корректно завершится, игнорируя изменения
13%
Представление автоматически обновится и учтёт изменения
7%
Компилятор выдаст ошибку, запрещая модификацию
66%
Поведение неопределено, итераторы могут инвалидироваться
7%
Изменения отложатся до окончания итерации по view
🎉181👍171😍160❤🔥152🥰137
Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt
#include <ranges>
#include <vector>
void process(const auto& view) {
for (auto x : view) { (void)x; }
}
int main() {
std::vector<int> data = { 1, 2, 3, 4, 5 };
auto pred = [](int x) {
return x % 2 == 0;
};
auto filtered = data | std::views::filter(pred);
process(filtered); // ❌ не компилируется
}
Объясни механизм: почему
begin() const невозможен в принципе, а не по недосмотру комитета.📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥182💯169❤150🔥150🥰148
Что такое «виртуальный прокси» в контексте C++?
Anonymous Quiz
37%
Прокси, реализованный через виртуальные функции в базовом классе
4%
Прокси, используемый только в виртуальных машинах и эмуляторах
7%
Прокси, автоматически удаляющийся при уничтожении базового объекта
16%
Прокси, откладывающий создание тяжёлого объекта до момента нужды
36%
Прокси, предоставляющий интерфейс без реальной реализации позади
🤩177👍175🎉168😍164🥰152
Какой паттерн используется для предоставления упрощённого интерфейса к сложной подсистеме?
Anonymous Quiz
9%
Proxy
51%
Facade
28%
Adapter
10%
Decorator
2%
Composite
Какой паттерн реализует «умный указатель» std::shared_ptr в стандартной библиотеке C++?
Anonymous Quiz
20%
Singleton
24%
Decorator
33%
Proxy
8%
Prototype
14%
Flyweight
This media is not supported in your browser
VIEW IN TELEGRAM
Включайте кружок там личное приглашение от спикера. 👆
Уже завтра в прямом эфире, разбираем архитектуру контекста в мультиагентных системах.
🤫 Секретный лут:
👉 Регистрируйтесь на трансляцию
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Реализация FSM на шаблонах C++ (compile-time FSM). Что невозможно в таком автомате?
Anonymous Quiz
6%
Compile-time FSM не поддерживает более 16 состояний из-за ограничений компилятора
12%
Compile-time FSM не позволяет использовать лямбды как действия при переходах состояний
50%
Добавление состояний и переходов в runtime — вся структура фиксирована при компиляции
13%
Compile-time FSM не может иметь guard-условия, зависящие от внешних данных контекста
19%
Compile-time FSM не совместим с виртуальными функциями и полиморфными типами C++
🤔3
Осталось всего 4 места на курс по ИИ-агентам. 30 апреля закрываем набор окончательно.
В ГС честно рассказали:
— Кому курс не подойдет;
— Какой хардкор в программе (LangGraph, AutoGen, CrewAI);
— Как мы даем токены, чтобы вы не тратили свои деньги.
🏃♀️ Записаться, пока есть места
В ГС честно рассказали:
— Кому курс не подойдет;
— Какой хардкор в программе (LangGraph, AutoGen, CrewAI);
— Как мы даем токены, чтобы вы не тратили свои деньги.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой атрибут запретит компилятору удалять функцию как неиспользуемую?
Anonymous Quiz
7%
__attribute__((noinline))
63%
__attribute__((used))
7%
__attribute__((visibility("default")))
5%
__attribute__((section(".isr")))
17%
extern "C"