void f() {
std::lock_guard<std::mutex> g(m);
throw std::runtime_error("error");
}Please open Telegram to view this post
VIEW IN TELEGRAM
Что произойдёт с mutex?
Anonymous Quiz
20%
Он останется заблокированным
60%
Будет разблокирован
0%
Зависит от компилятора
20%
UB
👍4
struct Base {
~Base() = default;
};
struct Derived : Base {
~Derived() { std::cout << "dtor\n"; }
};
Base* b = new Derived;
delete b;Please open Telegram to view this post
VIEW IN TELEGRAM
Что произойдёт?
Anonymous Quiz
33%
Вызовется Derived::~Derived
0%
Вызовется Base::~Base
67%
UB
0%
Вызовется Derived::~Derived, потом Base::~Base
👍4
std::vector<int> v = {1,2,3};
auto it = v.begin();
v.push_back(4);Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Что с it после push_back?
Anonymous Quiz
17%
Всегда валиден
67%
Может стать невалидным
0%
Всегда инвалидируется
17%
Зависит от размера элемента
👍4
CRTP (Curiously Recurring Template Pattern) — идиома проектирования, при которой шаблон класса принимает производный класс в качестве параметра шаблона
template<typename D>
struct Base
{
void call() { static_cast<D*>(this)->impl(); }
};
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Главное преимущество CRTP?
Anonymous Quiz
17%
Проще читать код
67%
Нет виртуальной таблицы
17%
Работает только с шаблонами
0%
Поддерживает RTTI
👍4
int x = 10;
auto f() { return (x); }
Please open Telegram to view this post
VIEW IN TELEGRAM
std::string_view f() {
return std::string("hello");
}Please open Telegram to view this post
VIEW IN TELEGRAM
Что здесь не так?
Anonymous Quiz
17%
Всё корректно
17%
Утечка памяти
33%
Висячая ссылка
33%
Ошибка компиляции
👍4
std::unique_ptr и move
std::unique_ptr<int> a = std::make_unique<int>(5);
auto b = a;
👍4
int x = 10;
auto f = [=]() mutable { ++x; };
f();
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Что делает std::move?
Anonymous Quiz
43%
Перемещает объект
14%
Вызывает move-конструктор
43%
Преобразует в rvalue
0%
Очищает объект
👍5
Вычисляется ли f(10) на этапе компиляции?
Anonymous Quiz
17%
Всегда
50%
Никогда
33%
Не гарантировано
0%
Зависит от версии компилятора
👍5