- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
constexpr int add(int a, int b)
{
return a + b;
}
static_assert(1 |> add(2) == and(1, 2));
FILE* file = fopen( “a.txt”, “wb” );
if (file) {
fputs(“Hello world”, file);
file |> fseek(9, SEEK_SET);
file |> fclose();
}
auto dangerous_teams(std::string const& s) -> bool {
return s
|> views::group_by(std::equal_to{})
|> views::transform(ranges::distance)
|> ranges::any_of([](std::size_t s){
return s >= 7;
});
}
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2011r0.html
какой C++)))
Я поднялся на таких фраерах. Ты средство.
Резанула глаза десятая строка, в которой нельзя вынести file.
И fclose удалить из if.
И так далее. Тогда можно будет так:
будет возвращать функтор, что исполняет a, вызывает b с возвращенным значением от a и возвращает первый переданный аргумент
https://ideone.com/sWvrYg
Ввести расширенную форму оператора |X#>, с необязательными Х и #
Х — порядковый номер аргумента, в который нужно подставить выражение слева.
# означает, что возвращаемое значение нужно отбросить и в качестве результата использовать значение выражения слева.
Тогда строчки 10-12 можно записать как:
Я у мамы комитетчик
https://ru.wikipedia.org/wiki/Бра_и_кет
|methods> = {fputs, fseek, fclose};
E = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
<files | E | methods>;
Сворачиваем вектор объектов с матрицей коммутации (в данном случае с единичной) и с вектором методов.
Эээ... Даже комитетчики не юзают свои стримы?
то читатели могут что-то заподозрить.
This paper proposes a new non-overloadable operator |> such that the expression x |> f(y) evaluates exactly as f(x, y). There would be no intermediate subexpression f(y).
This is notably unrelated to, and quite different from, [P1282R0], which proposed an overloadable operator|>, allowing the evaluation of the above expression as operator|>(x, f(y)).
/fxd