std::literals::chrono_literals::operator""s
| Definiert in Header <chrono> |
||
| constexpr std::chrono::seconds operator""s( unsigned long long secs ); |
(1) | (seit C++14) |
| constexpr std::chrono::duration</*nicht spezifiziert*/> operator""s( long double secs ); |
(2) | (seit C++14) |
Bildet ein std::chrono::duration Literal, das Sekunden repräsentiert.
Inhalt |
[bearbeiten] Parameter
| secs | - | die Anzahl der Sekunden |
[bearbeiten] Rückgabewert
Das std::chrono::duration Literal.
[bearbeiten] Mögliche Implementierung
constexpr std::chrono::seconds operator""s(unsigned long long s) { return std::chrono::seconds(s); } constexpr std::chrono::duration<long double> operator""s(long double s) { return std::chrono::duration<long double>(s); } |
[bearbeiten] Anmerkungen
Dieser Operator wird im Namensraum std::literals::chrono_literals deklariert, wobei sowohl literals als auch chrono_literals Inline-Namensräume sind. Der Zugriff auf diesen Operator kann über
- using namespace std::literals,
- using namespace std::chrono_literals, oder
- using namespace std::literals::chrono_literals.
erfolgen. Zusätzlich wird im Namensraum std::chrono durch die Standardbibliothek die Direktive using namespace literals::chrono_literals; bereitgestellt, sodass, wenn ein Programmierer using namespace std::chrono; verwendet, um Zugriff auf die Klassen der Chrono-Bibliothek zu erhalten, auch die entsprechenden Literaloperatoren sichtbar werden.
std::string definiert ebenfalls operator""s zur Darstellung von Literalobjekten des Typs std::string, aber es ist ein Zeichenketten-Literal: 10s sind zehn Sekunden, aber "10"s ist eine Zeichenkette mit zwei Zeichen.
[bearbeiten] Beispiel
#include <chrono> #include <iostream> int main() { using namespace std::chrono_literals; std::chrono::seconds halfmin = 30s; std::cout << "Half a minute is " << halfmin.count() << " seconds" " (" << halfmin << ").\n" "A minute and a second is " << (1min + 1s).count() << " seconds.\n"; std::chrono::duration moment = 0.1s; std::cout << "A moment is " << moment.count() << " seconds" " (" << moment << ").\n" "And thrice as much is " << (moment + 0.2s).count() << " seconds.\n"; }
Ausgabe
Half a minute is 30 seconds (30s). A minute and a second is 61 seconds. A moment is 0.1 seconds (0.1s). And thrice as much is 0.3 seconds.
[bearbeiten] Siehe auch
| erstellt eine neue duration (öffentliche Memberfunktion von std::chrono::duration<Rep,Period>) |