2м разделителям? Как заставить компилироваться закоментаренный кусок кода https://godbolt.org/z/qxff1aKaW ?
Не понял, то есть по двум легко, а вот по 3-м уже нет?
Проблема в том, что libstdc++ (безуспешно) пытается определить join_view<...>::_Iterator::iterator_category и обламывается по ходу, при том что в принципе не должен этого делать: http://eel.is/c++draft/range.join#iterator-2
Можно в начале все разделители свести к одному и потом применять один сплит: https://godbolt.org/z/M1sc1Tzvv Но вообще я тоже считаю что правильное решение split_when. Если его еще нет в стандарте, надо написать свой.
А мне вот кажется, что код Антона должен работать "из коробки", потому что иначе - это всё теряет какой-либо смысл. Как писать эти цепочки трансформаций, если надо помнить, что в какой-то момент оно сломается с адовой ошибкой компиляции?
С этим я согласен. Но три сплита - это три прохода по строке, то есть изначальный пример еще и неэффективен.
Это не имеет значения :) Я хочу иметь право писать гавно :)
* табличка с надписью "запрещено" *
О! Спасибо. Кажется что оно даже за 1 проход работает, так что всё не так страшно
Сменить компилятор на Clang 17 например ;)
Обсуждают сегодня