std::indirect_result_t
Von cppreference.com
| Definiert in Header <iterator> |
||
| template< class F, class... Is > requires (std::indirectly_readable<Is> && ...) && |
(seit C++20) | |
Der Alias-Template indirect_result_t ermittelt den Ergebnistyp der Invokation eines invocable-Typs F auf die Ergebnisse des Dereferenzierens von indirectly_readable-Typen Is....
[bearbeiten] Template-Parameter
| F | - | ein aufrufbarer Typ |
| Is | - | indirekt lesbare Typen, die zu Argumenten dereferenziert werden |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iterator> #include <type_traits> struct Fn { long operator()(const int&); int operator()(int&&); short operator()(int, int) const; auto operator()(const float) -> int&; void operator()(int[8]); }; static_assert( std::is_same_v<std::indirect_result_t<Fn, const int*>, long> and std::is_same_v<std::indirect_result_t<Fn, std::move_iterator<int*>>, int> and std::is_same_v<std::indirect_result_t<const Fn, int*, int*>, short> and std::is_same_v<std::indirect_result_t<Fn, float*>, int&> and std::is_same_v<std::indirect_result_t<Fn, int**>, void> ); int main() {}
[bearbeiten] Siehe auch
| (C++11)(entfernt in C++20)(C++17) |
leitet den Ergebnistyp der Invokation eines aufrufbaren Objekts mit einer Reihe von Argumenten ab (Klassenvorlage) |
| (C++26) |
berechnet den Werttyp eines indirectly_readable Typs mittels Projektion(Alias-Vorlage) |