This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
[arithmetic.operations.divides]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#arithmetic.operations.divides)
### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations#divides)
#### 22.10.7.5 Class template divides [arithmetic.operations.divides]
[🔗](#lib:divides)
`template<class T = void> struct divides {
constexpr T operator()(const T& x, const T& y) const;
};
`
[🔗](#lib:operator(),divides)
`constexpr T operator()(const T& x, const T& y) const;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12144)
*Returns*: x / y[.](#1.sentence-1)
[🔗](#lib:divides%3c%3e)
`template<> struct divides<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(),divides%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#L12166)
*Returns*: std::forward<T>(t) / std::forward<U>(u)[.](#2.sentence-1)

View File

@@ -0,0 +1,16 @@
[arithmetic.operations.general]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#arithmetic.operations.general)
### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations#general)
#### 22.10.7.1 General [arithmetic.operations.general]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L11999)
The library provides basic function object classes for all of the arithmetic
operators in the language ([[expr.mul]](expr.mul "7.6.5Multiplicative operators"), [[expr.add]](expr.add "7.6.6Additive operators"))[.](#1.sentence-1)

View File

@@ -0,0 +1,49 @@
[arithmetic.operations.minus]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#arithmetic.operations.minus)
### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations#minus)
#### 22.10.7.3 Class template minus [arithmetic.operations.minus]
[🔗](#lib:minus)
`template<class T = void> struct minus {
constexpr T operator()(const T& x, const T& y) const;
};
`
[🔗](#lib:operator(),minus)
`constexpr T operator()(const T& x, const T& y) const;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12060)
*Returns*: x - y[.](#1.sentence-1)
[🔗](#lib:minus%3c%3e)
`template<> struct minus<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(),minus%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#L12082)
*Returns*: std::forward<T>(t) - std::forward<U>(u)[.](#2.sentence-1)

View File

@@ -0,0 +1,49 @@
[arithmetic.operations.modulus]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#arithmetic.operations.modulus)
### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations#modulus)
#### 22.10.7.6 Class template modulus [arithmetic.operations.modulus]
[🔗](#lib:modulus)
`template<class T = void> struct modulus {
constexpr T operator()(const T& x, const T& y) const;
};
`
[🔗](#lib:operator(),modulus)
`constexpr T operator()(const T& x, const T& y) const;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12186)
*Returns*: x % y[.](#1.sentence-1)
[🔗](#lib:modulus%3c%3e)
`template<> struct modulus<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(),modulus%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#L12208)
*Returns*: std::forward<T>(t) % std::forward<U>(u)[.](#2.sentence-1)

View File

@@ -0,0 +1,49 @@
[arithmetic.operations.multiplies]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#arithmetic.operations.multiplies)
### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations#multiplies)
#### 22.10.7.4 Class template multiplies [arithmetic.operations.multiplies]
[🔗](#lib:multiplies)
`template<class T = void> struct multiplies {
constexpr T operator()(const T& x, const T& y) const;
};
`
[🔗](#lib:operator(),multiplies)
`constexpr T operator()(const T& x, const T& y) const;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12102)
*Returns*: x * y[.](#1.sentence-1)
[🔗](#lib:multiplies%3c%3e)
`template<> struct multiplies<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(),multiplies%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#L12124)
*Returns*: std::forward<T>(t) * std::forward<U>(u)[.](#2.sentence-1)

View File

@@ -0,0 +1,49 @@
[arithmetic.operations.negate]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#arithmetic.operations.negate)
### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations#negate)
#### 22.10.7.7 Class template negate [arithmetic.operations.negate]
[🔗](#lib:negate)
`template<class T = void> struct negate {
constexpr T operator()(const T& x) const;
};
`
[🔗](#lib:operator(),negate)
`constexpr T operator()(const T& x) const;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12228)
*Returns*: -x[.](#1.sentence-1)
[🔗](#lib:negate%3c%3e)
`template<> struct negate<void> {
template<class T> constexpr auto operator()(T&& t) const
-> decltype(-std::forward<T>(t));
using is_transparent = unspecified;
};
`
[🔗](#lib:operator(),negate%3c%3e)
`template<class T> constexpr auto operator()(T&& t) const
-> decltype(-std::forward<T>(t));
`
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12250)
*Returns*: -std::forward<T>(t)[.](#2.sentence-1)

View File

@@ -0,0 +1,49 @@
[arithmetic.operations.plus]
# 22 General utilities library [[utilities]](./#utilities)
## 22.10 Function objects [[function.objects]](function.objects#arithmetic.operations.plus)
### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations#plus)
#### 22.10.7.2 Class template plus [arithmetic.operations.plus]
[🔗](#lib:plus)
`template<class T = void> struct plus {
constexpr T operator()(const T& x, const T& y) const;
};
`
[🔗](#lib:operator(),plus)
`constexpr T operator()(const T& x, const T& y) const;
`
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/utilities.tex#L12018)
*Returns*: x + y[.](#1.sentence-1)
[🔗](#lib:plus%3c%3e)
`template<> struct plus<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(),plus%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#L12040)
*Returns*: std::forward<T>(t) + std::forward<U>(u)[.](#2.sentence-1)