名稱空間
變體
操作

std::indirectly_readable

來自 cppreference.com
 
 
迭代器庫
迭代器概念
indirectly_readable
(C++20)
迭代器原語
演算法概念與工具
間接可呼叫概念
常用演算法要求
(C++20)
(C++20)
(C++20)
工具
(C++20)
迭代器介面卡
範圍訪問
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
定義於標頭檔案 <iterator>
template< class In >

    concept __IndirectlyReadableImpl =
        requires(const In in) {
            typename std::iter_value_t<In>;
            typename std::iter_reference_t<In>;
            typename std::iter_rvalue_reference_t<In>;
            { *in } -> std::same_as<std::iter_reference_t<In>>;
            { ranges::iter_move(in) } -> std::same_as<std::iter_rvalue_reference_t<In>>;
        } &&
        std::common_reference_with<
            std::iter_reference_t<In>&&, std::iter_value_t<In>&
        > &&
        std::common_reference_with<
            std::iter_reference_t<In>&&, std::iter_rvalue_reference_t<In>&&
        > &&
        std::common_reference_with<
            std::iter_rvalue_reference_t<In>&&, const std::iter_value_t<In>&

        >;
(僅作說明*)
template< class In >

    concept indirectly_readable =

        __IndirectlyReadableImpl<std::remove_cvref_t<In>>;
(C++20 起)

概念 indirectly_readable 由透過應用 operator* 可讀的型別建模,例如指標、智慧指標和輸入迭代器。

[編輯] 語義要求

給定型別 I 的值 i,僅當其包含的所有概念都已建模,並且表示式 *i等價保持時,I 才建模 indirectly_readable

[編輯] 等價保持

在標準庫概念的 requires 表示式中宣告的表示式必須是等價保持的(除非另有說明)。