Есть ли альтернатива канальному синтаксису для range-v3? - PullRequest
0 голосов
/ 07 декабря 2018

Труба |Синтаксис в range-v3 отличный, но для этого нужно было заранее знать все представления, которые я хотел бы добавить ... Существует ли альтернативный синтаксис, который позволяет мне по желанию соединять представления в зависимости от какого-либо условия?

1 Ответ

0 голосов
/ 07 декабря 2018

Rangesv3 использует систему типов для хранения информации об операциях.Это делает вещи очень эффективными во время выполнения, так как компилятор знает, что происходит с данными при их переходе от одного шага к другому.

Чтобы сделать то, что вы хотите, вам нужно стереть типинформация и забудьте ее.

Для этого у них есть различные any_view с.«any_input_view<int>» может хранить терминал канала, который будет выводить int s.

Если у вас есть преобразование double_values, которое, ну, в общем, удваивает значения, вы можете сделать:

any_input_view<int> double_the_view( any_input_view<int> in ) {
  return std::move(in) | double_values;
}

обратите внимание, однако, что каждый такой этап имеет снижение производительности по сравнению с нетипированной стертой версией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...