На что влияет атрибут [[no_unique_address]] у нестатического поля и какой компромисс он вносит?
База Hintsage
Современный C++
Возможности стандартов C++11 и новее и идиоматичный код.
Практика
Вопросы: Современный C++
В проекте десятки единиц трансляции используют одну библиотеку: какой механизм C++20 устраняет повторную текстовую обработку её интерфейса?
Представьте API, которому нужно вернуть std::shared_ptr к полю объекта, сохранив владение целым объектом: какой механизм shared_ptr обеспечивает это и что будет уничтожено?
Вам нужно перенести элемент между двумя ассоциативными контейнерами без копирования ключа и повторного выделения памяти. Какой механизм C++17 следует выбрать?
Рассмотрите применение std::optional::and_then: почему его вызываемый объект должен возвращать std::optional и как это влияет на тип результата?
В каком смысле constinit предотвращает ошибочную динамическую инициализацию объекта со статическим временем хранения?
Как в C++20 отформатировать строку, полученную во время выполнения, не передавая её в интерфейс, рассчитанный на формат, проверяемый при компиляции?
В практической ситуации нужно заранее связать первые аргументы вызываемой функции без громоздкого std::bind: какой стандартный механизм C++20 выбрать?
Как std::mdspan отделяет многомерную индексацию от владения данными?
Разберите механизм побитового преобразования в C++20: что гарантирует этот код, чем результат отличается от числового преобразования и какие ограничения нужно учитывать?
#include <array>
#include <bit>
#include <cstddef>
int main() {
float value = 1.5f;
auto bytes = std::bit_cast<std::array<std::byte, sizeof(float)>>(value);
float copy = std::bit_cast<float>(bytes);
}
Практическая ситуация: поток должен ждать изменения атомарного состояния без активного опроса. Какой механизм C++20 выбрать?
В конвейере ленивых диапазонов требуется получить самостоятельный контейнер: какой механизм C++23 следует выбрать?
При объявлении оператора трёхстороннего сравнения со значением default у класса с полями разных типов что определяет категорию сравнения всего класса?
В многофазном параллельном алгоритме потоки должны повторно встречаться после каждой фазы, причём некоторые из них могут окончательно выйти. Какой механизм C++20 выбрать для такой синхронизации?
В API библиотеки нужно принимать любой непрерывный участок памяти без копирования и без привязки к конкретному контейнеру. Какой стандартный тип C++20 для этого выбрать и почему?
Объясните механизм фиксации места вызова и исправьте обёртку так, чтобы в журнале сохранялась строка из main, а не из info.
#include <iostream>
#include <source_location>
#include <string_view>
void log(std::string_view text,
std::source_location loc = std::source_location::current()) {
std::cout << loc.function_name() << ':' << loc.line()
<< " " << text << '
';
}
void info(std::string_view text) {
log(text);
}
int main() {
info("failure");
}
Отчего размер std::unique_ptr зависит от типа deleter и какую роль здесь играет оптимизация пустого базового класса?
В функции на C++23 нужно выполнить отмену побочного эффекта при любом выходе до точки подтверждения; какой стандартный механизм RAII выбрать?
В методе требуется единая реализация для const-, non-const- и rvalue-вызовов без набора перегрузок. Как механизм C++23 позволяет выразить это через явный параметр объекта?
В чём причина того, что designated initializers в C++20 применимы только к агрегатам и требуют порядка объявления полей?
Показано 1–20 из 50