名前空間
変種
操作

std::experimental::ranges::Common

From cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
コンセプトライブラリ
中核言語のコンセプト
Common
                              
オブジェクトのコンセプト
                              
                              
比較のコンセプト
呼び出し可能オブジェクトのコンセプト
                                        
                              
URNGコンセプト
 
template< class T, class U >

concept bool Common =
    Same<ranges::common_type_t<T, U>, ranges::common_type_t<U, T>> &&
    ConvertibleTo<T, ranges::common_type_t<T, U>> &&
    ConvertibleTo<U, ranges::common_type_t<T, U>> &&
    CommonReference<
        std::add_lvalue_reference_t<const T>,
        std::add_lvalue_reference_t<const U>> &&
    CommonReference<
        std::add_lvalue_reference_t<ranges::common_type_t<T, U>>,
        ranges::common_reference_t<
            std::add_lvalue_reference_t<const T>,

            std::add_lvalue_reference_t<const U>>>;
(ranges TS)

concept Common<T, U> は、2つの型 TU が、両方が変換可能な *共通の型*(ranges::common_type_t によって計算される)を共有することを示します。

Common<T, U> は、decltype((t))T であり、decltype((u))U であるような式 t および u が与えられた場合にのみ満たされます。

言い換えると、共通の型への変換は、元の式の等価性を保持するプロパティを変更してはなりません。

[編集] 等価性保持

式が**等価性保持**であるとは、等しい入力に対して等しい出力を生成することを意味します。

  • 式の入力は、そのオペランドで構成されます。
  • 式の出力は、その結果と、式によって変更されたすべてのオペランド(存在する場合)で構成されます。

等価性保持が要求されるすべての式は、さらに**安定**である必要があります。同じ入力オブジェクトでそのような式の2回の評価は、これらの入力オブジェクトの明示的な介入的な変更がない限り、等しい出力を持ちます。

[編集] 関連情報

型の共通型を決定します。
(class template) [編集]
型の共通参照型を決定します。
(class template) [編集]
2つの型が共通の参照型を共有することを規定する
(concept) [編集]
English 日本語 中文(简体) 中文(繁體)