Информация об изменениях

Сообщение Re[4]: [achtung] cast указателя к bool от 28.05.2020 7:50

Изменено 28.05.2020 7:53 DDDX

Re[4]: [achtung] cast указателя к bool
Здравствуйте, Alexander G, Вы писали:

AG>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>Вообще, как по мне, их лучше явно запретить (=delete).


AG>И писать всегда std::string_view("Literal") или std::string_view{} для пустой строки?


В моих трех тыщах файлов основного проекта, вылезло 21 места, где вызывается конструктор/оператор_присваивания для const char*.

Сижу, думаю

  AG>Кстати, я бы тогда хелперы предложил, заодно минус лишний strlen:
template<std::size_t Size>
std::string_view string_from_literal(const char (&data)[Size])
{
  return std::string_view(data, data+Size);
}

inline constexpr null_string = std::string_view{};

+5
Re[4]: [achtung] cast указателя к bool
Здравствуйте, Alexander G, Вы писали:

AG>Здравствуйте, Коваленко Дмитрий, Вы писали:


КД>>Вообще, как по мне, их лучше явно запретить (=delete).


AG>И писать всегда std::string_view("Literal") или std::string_view{} для пустой строки?


В моих трех тыщах файлов основного проекта, вылезло 21 места, где вызывается конструктор/оператор_присваивания для const char*.

Сижу, думаю

  AG>Кстати, я бы тогда хелперы предложил, заодно минус лишний strlen:
template<std::size_t Size>
std::string_view string_from_literal(const char (&data)[Size])
{
  return std::string_view(data, data+Size);
}

inline constexpr null_string = std::string_view{};

+5

UPD. А оно точно будет работать как ожидается? Что-то у меня сомнения насчет того, что в Size не будет включен терминальный нуль. Надо проверить