Functions
F.25
Используйте `zstring` или `not_null<zstring>` для обозначения строки в стиле C
Причина
Строки в стиле C повсеместно распространены. Они определены по соглашению: массивы символов с нулевым терминатором. Нам необходимо отличать строки в стиле C от указателя на одиночный символ или старомодного указателя на массив символов.
Если нулевое завершение не нужно, используйте string_view.
Пример
Рассмотрим:
int length(const char* p);
Когда я вызываю length(s), нужно ли сначала проверить, что s не равен nullptr? Должна ли реализация length() проверять, что p не равен nullptr?
// реализатор length() должен допускать, что p == nullptr возможно
int length(zstring p);
// на вызывающем лежит ответственность убедиться, что p != nullptr
int length(not_null<zstring> p);
Примечание
zstring не представляет владение.
Смотрите также: Библиотека поддержки