История изменений
Исправление 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) {}
};
Юзеру данного кода будет понятно, что указатель будет сохранен без изучения ливера структуры