diff --git a/reference/ranges/as_const_view.md b/reference/ranges/as_const_view.md index 1112e2392..9a4832ccb 100644 --- a/reference/ranges/as_const_view.md +++ b/reference/ranges/as_const_view.md @@ -67,7 +67,7 @@ namespace std::ranges { | 名前 | 説明 | 対応バージョン | |-------------------------------------------------------|------------------------------|----------------| -| [`(deduction_guide)`](as_const_view/op_deduction_guide.md.nolink) | クラステンプレートの推論補助 | C++23 | +| [`(deduction_guide)`](as_const_view/op_deduction_guide.md) | クラステンプレートの推論補助 | C++23 | ## 例 ```cpp example diff --git a/reference/ranges/as_const_view/op_deduction_guide.md b/reference/ranges/as_const_view/op_deduction_guide.md new file mode 100644 index 000000000..1a33d8f8f --- /dev/null +++ b/reference/ranges/as_const_view/op_deduction_guide.md @@ -0,0 +1,63 @@ +# 推論補助 +* ranges[meta header] +* std::ranges[meta namespace] +* function[meta id-type] +* cpp23[meta cpp] + +```cpp +namespace std::ranges { + template + as_const_view(R&&) -> as_const_view>; +} +``` +* as_const_view[link ../as_const_view.md] +* all_t[link /reference/ranges/all.md] + +## 概要 + +[`as_const_view`](../as_const_view.md)クラステンプレートの型推論補助。 + +## 例 +```cpp example +#include +#include +#include + +int main() { + std::vector vec = {1, 2, 3, 4}; + + std::ranges::as_const_view v1{vec}; + + static_assert(std::same_as< + decltype(v1), + std::ranges::as_const_view>> + >); + + std::ranges::as_const_view v2{std::vector{1, 2}}; + + static_assert(std::same_as< + decltype(v2), + std::ranges::as_const_view>> + >); +} +``` +* ref_view[link /reference/ranges/ref_view.md] +* owning_view[link /reference/ranges/owning_view.md] + +### 出力 +``` +``` + +## バージョン +### 言語 +- C++23 + +### 処理系 +- [Clang](/implementation.md#clang): ?? +- [GCC](/implementation.md#gcc): 13.1 +- [Visual C++](/implementation.md#visual_cpp): 2022 Update 6 + +## 参照 + +- [P2278R4 `cbegin` should always return a constant iterator](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2278r4.html) +