std::chrono:: operator+, std::chrono:: operator- (std::chrono::year)
|
constexpr
std::
chrono
::
year
operator
+
(
const
std::
chrono
::
year
&
y,
const std:: chrono :: years & ys ) noexcept ; |
(1) | (seit C++20) |
|
constexpr
std::
chrono
::
year
operator
+
(
const
std::
chrono
::
years
&
ys,
const std:: chrono :: year & y ) noexcept ; |
(2) | (seit C++20) |
|
constexpr
std::
chrono
::
year
operator
-
(
const
std::
chrono
::
year
&
y,
const std:: chrono :: years & ys ) noexcept ; |
(3) | (seit C++20) |
|
constexpr
std::
chrono
::
years
operator
-
(
const
std::
chrono
::
year
&
y1,
const std:: chrono :: year & y2 ) noexcept ; |
(4) | (seit C++20) |
Inhaltsverzeichnis |
Rückgabewert
Hinweise
Wenn der resultierende Jahreswert für
(1-3)
außerhalb des Bereichs
[
-
32767
,
32767
]
liegt, ist der tatsächlich gespeicherte Wert nicht spezifiziert.
Das Ergebnis der Subtraktion zweier
year
-Werte ist eine Dauer vom Typ
std::chrono::years
. Diese Dauer-Einheit repräsentiert die Länge des durchschnittlichen gregorianischen Jahres, und die resultierende Dauer steht in keiner Beziehung zur Anzahl der Tage in den jeweiligen durch die Operanden repräsentierten Jahren. Zum Beispiel ist das Ergebnis von
2018y
-
2017y
gleich
std::
chrono
::
years
(
1
)
, was 365,2425 Tage repräsentiert, nicht 365 Tage.
Beispiel
#include <cassert> #include <chrono> int main() { std::chrono::year y{2020}; y = std::chrono::years(12) + y; // Überladung (2): Dauer + Zeitpunkt assert(y == std::chrono::year(2032)); y = y - std::chrono::years(33); // Überladung (3): Zeitpunkt - Dauer assert(y == std::chrono::year(1999)); // y = std::chrono::years(33) - y; // nicht unterstützt: Dauer - Zeitpunkt using namespace std::chrono; constexpr std::chrono::years ys = 2025y - 2020y; // Überladung (4) static_assert(ys == std::chrono::years(5)); }
Siehe auch
|
erhöht oder verringert den Monat
(öffentliche Elementfunktion von
std::chrono::month
)
|
|
|
addiert oder subtrahiert eine Anzahl von Monaten
(öffentliche Elementfunktion von
std::chrono::month
)
|