最終更新日時: 2023年01月16日 17時49分31秒 (JST)
yoh が更新

履歴 編集

function template
<bitset>

# std::operator^

    namespace std {
      template <size_t N>
      bitset<N> operator^(const bitset<N>& lhs, const bitset<N>& rhs);          // (1) C++03

      template <size_t N>
      bitset<N> operator^(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; // (1) C++11

      template <size_t N>
      constexpr bitset<N> operator^(const bitset<N>& lhs, const bitset<N>& rhs) noexcept; // (1) C++23
    }

## 概要

`lhs`と`rhs`に対して、排他的論理和(XOR)した`bitset`を生成する。

## 戻り値

`lhs`と`rhs`のどちらか一方だけ1となるビットを1、それ以外のビットを0とする`bitset`オブジェクトを生成して返す。
この関数は、以下のプログラムと同じ動作をする：

    return bitset<N>(lhs) ^= rhs;

## 例外

投げない。

## 例

    #include <iostream>
    #include <bitset>

    int main()
    {
      std::bitset<4> bs1("0011");
      std::bitset<4> bs2("0101");

      std::bitset<4> result = bs1 ^ bs2;

      std::cout << result << std::endl;
    }

### 出力

    0110

## 参照

- P2417R2 A more constexpr bitset