Получить субтитры из видео YouTube, используя video.google.com - текстовый формат

Простыми словами «тривиальная» специальная функция-член буквально означает функцию-член, которая делает свою работу очень простым способом. «Прямой способ» означает различную вещь для различных видов специальных функций-членов.

Для конструктора по умолчанию и деструктора, который является «тривиальным», означает буквально «ничего не делать». Для оператора copy-constructor и copy-assign термин «тривиальный» означает буквально «эквивалентно простому необработанному копированию памяти» (например, копирование с memcpy).

Если вы сами определяете конструктор, считается нетривиальным, даже если он ничего не делает, поэтому тривиальный конструктор должен быть неявно определен компилятором.

Чтобы специальная функция-член удовлетворяла вышеуказанным требованиям, класс должен иметь очень упрощенную структуру, он не должен содержать никаких скрытых инициализаций при создании или уничтожении объекта или каких-либо скрытых дополнительных внутренних манипуляции при копировании.

Например, если класс имеет виртуальные функции, для создания объектов этого класса потребуются дополнительные скрытые инициализации (инициализировать таблицу виртуальных методов и т. д.), поэтому конструктор для этого класса не будет считаться тривиальным.

В другом примере, если класс имеет виртуальные базовые классы, то каждый объект этого класса может содержать скрытые указатели, указывающие на другие части одного и того же объекта. Такой самореферентный объект не может быть скопирован простой процедурой копирования необработанной памяти (например, memcpy). Дополнительные манипуляции будут необходимы для правильной повторной инициализации скрытых указателей в копии. По этой причине оператор копирования и оператор присваивания копии для этого класса не будут квалифицироваться как тривиальные.

По понятным причинам это требование является рекурсивным: все подобъекты класса (базы и нестатические элементы) должны также имеют тривиальные конструкторы.

1
задан aldo 18 March 2019 в 18:37
поделиться