[bitwise.operations.or]

# 22 General utilities library [[utilities]](./#utilities)

## 22.10 Function objects [[function.objects]](function.objects#bitwise.operations.or)

### 22.10.11 Bitwise operations [[bitwise.operations]](bitwise.operations#or)

#### 22.10.11.3 Class template bit_or [bitwise.operations.or]

[ð](#lib:bit_or)

`template<class T = void> struct bit_or {
  constexpr T operator()(const T& x, const T& y) const;
};
`

[ð](#lib:operator(),bit_or)

`constexpr T operator()(const T& x, const T& y) const;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12992)

*Returns*: x | y[.](#1.sentence-1)

[ð](#lib:bit_or%3c%3e)

`template<> struct bit_or<void> {
  template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
    -> decltype(std::forward<T>(t) | std::forward<U>(u));

  using is_transparent = unspecified;
};
`

[ð](#lib:operator(),bit_or%3c%3e)

`template<class T, class U> constexpr auto operator()(T&& t, U&& u) const
    -> decltype(std::forward<T>(t) | std::forward<U>(u));
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L13014)

*Returns*: std​::​forward<T>(t) | std​::​forward<U>(u)[.](#2.sentence-1)
