LINUX.ORG.RU

История изменений

Исправление PRN, (текущая версия) :

ПыСы. При необходимости leading spaces покрываются одним единственным подобным «if» сразу после вычитывания ключа. При этом пред-проверку лучше оставить так как она позволяет избежать создания относительно «тяжёлого» istringstream когда он гарантировано не нужен. Это как я бы это делал. А так конечно да - существует множество способов различной степени извращённости как добиться того же результата, но приведённый мне представляется наиболее простым и оптимальным.

Простое, оптимальное и работающее решение это:

- if (!(tokens >> key)) {
+ if (!(tokens >> std::skipws >> key)) {

и проверку ниже перенести, а не все вышеописанное. А еще лучше, специализированную либу заюзать и не изобретать велосипедов с квадратными колесами.

Исходная версия PRN, :

ПыСы. При необходимости leading spaces покрываются одним единственным подобным «if» сразу после вычитывания ключа. При этом пред-проверку лучше оставить так как она позволяет избежать создания относительно «тяжёлого» istringstream когда он гарантировано не нужен. Это как я бы это делал. А так конечно да - существует множество способов различной степени извращённости как добиться того же результата, но приведённый мне представляется наиболее простым и оптимальным.

Простое, оптимальное и работающее решение это:

- if (!(tokens >> key)) {
+ if (!(tokens >> std::skipws >> key)) {

а не все вышеописанное. А еще лучше, специализированную либу заюзать и не изобретать велосипедов с квадратными колесами.