Skip to content

Commit 76cc74b

Browse files
authored
Update range_adaptor_closure.md
1 parent 89ae27b commit 76cc74b

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

reference/ranges/range_adaptor_closure.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,22 @@ public:
5050

5151
inline constexpr user_defined_closure_t user_defined;
5252
```
53+
* std::ranges::range_adaptor_closure[color ff0000]
54+
* std::ranges::viewable_range[link viewable_range.md]
55+
56+
パイプライン記法をサポートする方法は規定されていないが、一般には処理系がRangeと`range_adaptor_closure`を引数とする以下のような`operator|`を定義することで行われると考えられる。
5357

54-
パイプライン記法をサポートする方法は規定されていないが、一般には処理系がRangeと`range_adaptor_closure`を引数とする`operator|`を定義することで行われる。
58+
```cpp
59+
template<std::ranges::viewable_range R, class T>
60+
requires std::derived_from<T, std::ranges::range_adaptor_closure<T>> && std::invocable<T, R>
61+
constexpr auto operator| (R&& r, T&& raco) {
62+
return raco(std::forward<R>(r));
63+
}
64+
```
65+
* std::ranges::range_adaptor_closure[color ff0000]
66+
* std::ranges::viewable_range[link viewable_range.md]
67+
* std::invocable[link /reference/concepts/invocable.md]
68+
* std::derived_from[link /reference/concepts/derived_from.md]
5569

5670
## 例
5771
```cpp example

0 commit comments

Comments
 (0)