LINUX.ORG.RU

История изменений

Исправление kvpfs_2, (текущая версия) :

Нужно принять следующее утверждение и не делать иначе: «Если что-то передаётся по ссылке/указателю, то оно не сохраняется внутри объекта, если для иного явно не приняты меры». Мерами могут быть - передача shared_ptr, unique_ptr, …, или подобная обёртка:

template <typename T>
requires std::is_pointer_v<T>
using stored_ptr = T;

struct S {
   int *p;
   S(stored_ptr<int *> i) : p(i) {}
};

Юзеру данного кода будет понятно, что указатель будет сохранен, без изучения ливера структуры

Исходная версия kvpfs_2, :

Нужно принять следующее утверждение и не делать иначе: «Если что-то передаётся по ссылке/указателю, то оно не сохраняется внутри объекта, если для иного явно не приняты меры». Мерами могут быть - передача shared_ptr, unique_ptr, …, или подобная обёртка:

template <typename T>
requires std::is_pointer_v<T>
using stored_ptr = T;

struct S {
   int *p;
   S(stored_ptr<int *> i) : p(i) {}
};

Юзеру данного кода будет понятно, что указатель будет сохранен без изучения ливера структуры