Почему инициализация поля структуры со значением по умолчанию считается «номером магии» от Clang-Tidy?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему инициализация поля структуры со значением по умолчанию считается «номером магии» от Clang-Tidy?

Сообщение Anonymous »

Рассмотрим следующий пример: < /p>

Код: Выделить всё

struct DefaultSettings {
std::string tcpIpAddress = "127.0.0.1";
uint16_t tcpPort = 1993; // Marked as magic number!
}
clang-tidy (с читаемости-magic-numbers проверить) рассматривает 1993 волшебное число.
В этой ситуации Clang-tidy предложил бы следующее:
struct DefaultSettings {
std::string tcpIpAddress = "127.0.0.1";
static constexpr uint16_t defaultTcpPort = 1993;
uint16_t tcpPort = defaultTcpPort;
}

и теперь 1993 больше не волшебство ...
Следуя той же строке рассуждений, на самом деле это должно быть похоже на это:

Код: Выделить всё

struct DefaultSettings {
static constexpr std::string_view defaultIpAddress = "127.0.0.1";
std::string tcpIpAddress = defaultIpAddress;
static constexpr uint16_t defaultTcpPort = 1993;
uint16_t tcpPort = defaultTcpPort;
}
В моих глазах это делает код на самом деле более словесным и определенно не более читабельным.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... agic-numbe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»