Как мне присоединиться к представлениям, используя std::rangesC++

Программы на C++. Форум разработчиков
Anonymous
 Как мне присоединиться к представлениям, используя std::ranges

Сообщение Anonymous »

Как объединить два представления с помощью std::ranges?

В ranges-v3 представления соединяются с помощью view::concat(), и я не могу выясните, как это сделать с помощью std::ranges.
#include
#include
#include
#include
using namespace std;
using namespace views;

void snake_to_camel() {
auto transform = views::transform;
auto const s = string{"feel_the_force"};
auto words = s | split('_'); // [[f,e,e,l],[t,h,e],[f,o,r,c,e]]
auto words_cap = words | transform([](auto word){
auto transform = views::transform;
auto head = word | take(1)
| transform([](unsigned char c){return toupper(c);}); // e.g. [F]
auto tail = word | drop(1); // e.g. [e.e.l]
return tail;
//return concat( head, tail ); // e.g. [F,e,e,l] // join( head, tail ) will not work here.
}); // [[F,e,e,l],[T,h,e],[F,o,r,c,e]]
auto s_camelcase = words_cap | join; // [F.e.e.l.T.h.e.F.o.r.c.e]
string res;
for(auto c : s_camelcase)
res.push_back(c);
cout

Подробнее здесь: https://stackoverflow.com/questions/695 ... -stdranges

Вернуться в «C++»