Skip to content

Latest commit

 

History

History
71 lines (55 loc) · 1.98 KB

op_deduction_guide.md

File metadata and controls

71 lines (55 loc) · 1.98 KB

推論補助

  • string_view[meta header]
  • std[meta namespace]
  • basic_string_view[meta class]
  • cpp20[meta cpp]
namespace std {
  template <class It, class End>
  basic_string_view(It, End)
    -> basic_string_view<iter_value_t<It>>;          // (1) C++20

  template<class R>
  basic_string_view(R&&)
    -> basic_string_view<ranges::range_value_t<R>>;  // (2) C++23
}
  • iter_value_t[link /reference/iterator/iter_value_t.md]
  • ranges::range_value_t[link /reference/ranges/range_value_t.md]

概要

std::basic_string_viewクラステンプレートの型推論補助。イテレータ範囲やレンジから推論する。

テンプレートパラメータ制約

#include <iostream>
#include <string_view>

int main()
{
  std::string s = "Hello";
  std::basic_string_view sv{s.begin(), s.end()};
  std::cout << sv << std::endl;
}
  • s.begin()[link /reference/string/basic_string/begin.md]
  • s.end()[link /reference/string/basic_string/end.md]

出力

Hello

バージョン

言語

  • C++20

処理系

関連項目

参照