Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::indirect_result_t

      From cppreference.com
      <cpp‎ |iterator
       
       
      Iterator library
      Iterator concepts
      Iterator primitives
      Algorithm concepts and utilities
      Indirect callable concepts
      Common algorithm requirements
      (C++20)
      (C++20)
      (C++20)
      Utilities
      indirect_result_t
      (C++20)
      (C++20)
      Iterator adaptors
      Range access
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++11)(C++14)
      (C++14)(C++14)  
      (C++17)(C++20)
      (C++17)
      (C++17)
       
      Defined in header<iterator>
      template<class F,class...Is>

          requires(std::indirectly_readable<Is>&& ...)&&
                   std::invocable<F,std::iter_reference_t<Is>...>

      using indirect_result_t=std::invoke_result_t<F,std::iter_reference_t<Is>...>;
      (since C++20)

      The alias templateindirect_result_t obtains the result type of invoking aninvocable typeF on the result of dereferencingindirectly_readable typesIs....

      [edit]Template parameters

      F - an invocable type
      Is - indirectly readable types that are dereferenced to arguments

      [edit]Example

      Run this code
      #include <iterator>#include <type_traits> struct Fn{long operator()(constint&);int operator()(int&&);short operator()(int,int)const;auto operator()(constfloat)->int&;void operator()(int[8]);}; static_assert(std::is_same_v<std::indirect_result_t<Fn,constint*>,long> andstd::is_same_v<std::indirect_result_t<Fn,std::move_iterator<int*>>,int> andstd::is_same_v<std::indirect_result_t<const Fn,int*,int*>,short> andstd::is_same_v<std::indirect_result_t<Fn,float*>,int&> andstd::is_same_v<std::indirect_result_t<Fn,int**>,void>); int main(){}

      [edit]See also

      (C++11)(removed in C++20)(C++17)
      deduces the result type of invoking a callable object with a set of arguments
      (class template)[edit]
      computes the value type of anindirectly_readable type by projection
      (alias template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/iterator/indirect_result_t&oldid=175441"

      [8]ページ先頭

      ©2009-2025 Movatter.jp