Re[10]: Метапрограммисты надоели
От: jazzer Россия Skype: enerjazzer
Дата: 08.10.14 15:10
Оценка: 2 (1)
Здравствуйте, kurchatov, Вы писали:

K>Здравствуйте, TimurSPB, Вы писали:


TSP>>И у спирита есть ещё одна фича(?) — тот кто написал вещи типа:

TSP>>
( *( bs::anychar_p - bs::ch_p( 0x1F ) - bs::ch_p( '"' ) ) )[ bs::assign_a( attr.StrValue ) ]>> !bs::ch_p( 0x1F );


K>Сейчас кто-нибудь придет и скажет, какой это красивый и выразительный код


Насчет красивого хз, но все понятно.
Непонятно только, зачем там кавычка, если терминатор — '0x1F').
Плюс, чтобы вычитать символы из множества, нет нужды каждый символ оборачивать в bs::ch_p. Так что весь крокодил bs::anychar_p — bs::ch_p( 0x1F ) — bs::ch_p( '"' ) превращается в коротенький ~bs::chset("\x1F\"").
Плюс для чтения строчки, ограниченной всякими '0x1F', есть специальный парсер confix_p.
Т.е. парсер для строчки, ограниченной '\x1F', вместо всего крокодила выше, будет записываться как:
bs::confix_p( '\x1F', (*(bs::anychar_p-'"'))[ bs::assign_a( attr.StrValue ) ], '\x1F')
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.