Здравствуйте, 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 или вторым вариантом, одно изменение в логие, одна строка в коде.