Оговорка - не из стандарта. ... Правильную и неправильную реализацию формализовать нельзя (без явной аттрибуции), потмоу что и тот и тот код может быть верным в зависимости от "оговорок".
а ведь ты мог бы просто согласиться с тем, что твое изложение идет с т.з. некоторой этики разработки. ... Ты оперировал на уровне некоторой смысловой надстройки над стандартом, созданной с учетом изложения стандарта.
Мне не с чем соглашаться.
Вообще, я очень надеюсь, что в стандарте это помечено как UB.
std::is_trivial
. И это будет ошибкой. Именно поэтому я даже предположить не мог, что объект с указателем формально может считаться тривиальным.
Если он владеет объектом, то, по определению (из данной вами ссылки), не может быть тривиальным, потому что у него будет нетривиальный конструктор копирования и деструктор (не рассматриваем вариант с утечкой памяти).
Сам по себе указатель - тривиальный тип
но класс, содержащий указатель (и владещющий адресуемым объектом) не является тривиальным типом.
std::vector <std::vector <myType::myRGB>>
std::lock_guard
является реализацией идиомы Scope Guard - прикладного шаблона, суть которого состоит в гарантии освобождения ресурса при выходе из области видимости функции.
Стандарт C++ никак не определяет устройства вроде клавиатуры и мыши.