.NET Fest: полная программа конференции на сайте. Присоединяйся к самому большому .NET ивенту
×Закрыть

C++ дайджест #19: підготовка до співбесід

Привіт, мої любі сішники! Сьогодні випуск буде присвячено підготовці до співбесід. Тож почнімо? :)

Матеріали для підготовки до співбесід

Не забудьте повторити патерни, ідіоми, контейнери та їх складність, алгоритми пошуку та сортування (а повторювати краще в C++ shell) та як реалізувати таблицю віртуальних функцій.

Підбірки питань, які трапляються на співбесідах, і відповіді на них:

Дуже корисно прочитати книгу „Cracking the Coding Interview” та не забудьте перечитати Маєрса! Успіхів!

Modern C++

Mangling dependent parameter types, or, what happened to std::default_order

A new thread in C++20 (jthread)

Корисні посилання

Dark corners and pitfalls of C++

Bring Your C++ OpenGL Code to the Web

Інструменти

Common Systems Programming Optimizations & Tricks

An introduction to deterministic builds with C/C++

Setting up an Android application with AWS SDK for C++

Vcpkg: 2019.07 Update

C++ Cross-PlatformDevelopment with Visual Studio 2019 version 16.3: vcpkg, CMake configuration, remote headers, and WSL

Оновлення

Цього місяця маємо такі оновлення:

Для новачків

Beginner’s Guide to Linkers

The importance of knowing RAII

C++ Interview Questions

Хвилиночка флуду

C++ Humor


← Попередній випуск: C++ дайджест #18

LinkedIn

6 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.
A new thread in C++20 (jthread)

Начали красить будку...

Лучше бы переосмыслили posix в части многопоточности и сделали бы либу для облегчения программирования многопоточности. Да, это сложно и долго и без академических навуковцев не обойтись.

Синтаксического сахарка насыпали, как обычно. Для каких-то задач может быть удобно. Но разочаровывает, что ничего нового здесь нет: всё то же самое можно было заиметь и в C++11 лёгкими обёртками. Завернуть std::thread в объект, который будет джойнить в деструкторе, — задача, с которой любой джун справится.
Ну и «стоп_токен» — всего лишь атомик флаг, который можно запихнуть в ту же обёртку и проверять в другом потоке. Эх.

Лучше б, например, стандартизовали приоритеты потоков. А то хоть лазейка в виде .native_handle() и была оставлена стандартизаторами в 11 году (понимали ведь, что всё не покрывают) — но это не причина забрасывать стандартизацию чего-то реально нового теперь.

и было бы не плохо иметь возможность указать размер стека потока

Просто переписать обертку, которую запихали в стандарт. Фактически std::thread в стандарте напоминает std::auto_ptr. Как бы он есть и такой же калечный. А теперь еще одно уродство std::jthread.

Но, к счастью в С++ тебе никто не мешает написать свою обертку на либу для потоков в нужной тебе оси.

Но, например, условные переменные очень нетривиальный примитив синхронизации. Нет чтобы переработать весь подход с учетом современного железа и удобства работы с новым интерфейсом и уже его сделать новой либой и в STL обертку к нему.
Да и сами pthread уже навороченные новыми ключами конкретно, время упрощать и перерабатывать.

Было бы не плохо чтоб оно было в std, написать свое можно всегда (или в очередной раз скопировать из старых проектов), но хотелось бы иметь готовое в стд, тем более что потоки довольно платформозависимая штука.

Фактически std::thread в стандарте напоминает std::auto_ptr. Как бы он есть и такой же калечный. А теперь еще одно уродство std::jthread.

Подписаться на комментарии