Re[5]: Библиотека форматирования marty::format
От: Igore Россия  
Дата: 16.04.25 15:44
Оценка: 8 (1)
Здравствуйте, Marty, Вы писали:

I>>Нет, я про другое, вопрос про форматирование, почему

I>>
I>>inline constexpr bool isFormatSignMarker(utf32_char_t ch)
I>>{
I>>    return ch==utf32_char_t('-') || ch==utf32_char_t('+') /*  || ch==utf32_char_t(' ') */ ;
I>>}
I>>

I>>а не
I>>
I>>inline constexpr bool isFormatSignMarker(utf32_char_t ch)
I>>{
I>>   swith(ch) {
I>>      case '-':
I>>      case '+':
I>>      //case ' ':
I>>         return true;
I>>      default:
I>>         return false;
I>>   }
I>>}
I>>


M>Свич длиннее писать, а в чем его преимущества?

Код читать и поддерживать с ним проще, добавлять/удалять новые токены, вот это художественное форматирование
inline
constexpr
bool isFormatTypeChar(utf32_char_t ch)
{
    return ch==utf32_char_t('?') || ch==utf32_char_t('s') || ch==utf32_char_t('b') || ch==utf32_char_t('B') || ch==utf32_char_t('c')
        || ch==utf32_char_t('d') || ch==utf32_char_t('o') || ch==utf32_char_t('x') || ch==utf32_char_t('X') || ch==utf32_char_t('a')
        || ch==utf32_char_t('A') || ch==utf32_char_t('e') || ch==utf32_char_t('E') || ch==utf32_char_t('f') || ch==utf32_char_t('F')
        || ch==utf32_char_t('g') || ch==utf32_char_t('G') || ch==utf32_char_t('n') || ch==utf32_char_t('%');
}

при любом добавлении, удалении символа, в истории код будет плохо выглядеть раз, затронет не одну строку два, git blame будет не правильные данные отображать. А со switch/case или вторым вариантом, одно изменение в логие, одна строка в коде.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.