50 lines
1.3 KiB
Markdown
50 lines
1.3 KiB
Markdown
[logical.operations.and]
|
||
|
||
# 22 General utilities library [[utilities]](./#utilities)
|
||
|
||
## 22.10 Function objects [[function.objects]](function.objects#logical.operations.and)
|
||
|
||
### 22.10.10 Logical operations [[logical.operations]](logical.operations#and)
|
||
|
||
#### 22.10.10.2 Class template logical_and [logical.operations.and]
|
||
|
||
[ð](#lib:logical_and)
|
||
|
||
`template<class T = void> struct logical_and {
|
||
constexpr bool operator()(const T& x, const T& y) const;
|
||
};
|
||
`
|
||
|
||
[ð](#lib:operator(),logical_and)
|
||
|
||
`constexpr bool operator()(const T& x, const T& y) const;
|
||
`
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12815)
|
||
|
||
*Returns*: x && y[.](#1.sentence-1)
|
||
|
||
[ð](#lib:logical_and%3c%3e)
|
||
|
||
`template<> struct logical_and<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(),logical_and%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#L12837)
|
||
|
||
*Returns*: std::forward<T>(t) && std::forward<U>(u)[.](#2.sentence-1)
|