operator<<,>>(std::subtract_with_carry_engine)
Von cppreference.com
< cpp | numeric | random | subtract with carry engine
| template< class CharT, class Traits > friend std::basic_ostream<CharT, Traits>& |
(1) | (seit C++11) |
| template< class CharT, class Traits > friend std::basic_istream<CharT, Traits>& |
(2) | (seit C++11) |
1) Schreibt die textuelle Darstellung des aktuellen Zustands von e nach os mit fmtflags auf std::ios_base::dec | std::ios_base::left und dem Leerzeichen als Füllzeichen gesetzt.
Nach dem Schreiben werden die ursprünglichen fmtflags und das ursprüngliche Füllzeichen von os wiederhergestellt.
2) Liest eine textuelle Darstellung des Engine-Zustands aus is (bezeichnet als text) mit fmtflags auf std::ios_base::dec gesetzt, und setzt den Zustand von e auf diesen Zustand.
Nach dem Lesen werden die ursprünglichen fmtflags von is wiederhergestellt.
- Wenn text nicht zuvor mit einem Ausgabe-Stream pr geschrieben wurde, ist das Verhalten undefiniert.
- Andernfalls, wenn einer der folgenden Werte false ist, ist das Verhalten undefiniert.
- is.getloc() == pr.getloc()
- std::is_same<decltype(is)::char_type,
decltype(pr)::char_type>::value - std::is_same<decltype(is)::traits_type,
decltype(pr)::traits_type>::value
- Andernfalls, wenn text keine gültige textuelle Darstellung eines Zustands von decltype(e) ist, bleibt der Zustand von e unverändert und is.setstate(std::ios_base::failbit) wird aufgerufen.
- Andernfalls, gegeben eine weitere Engine eng vom gleichen Typ wie e. Wenn text zuvor von pr << eng geschrieben wurde und keine zwischenzeitlichen Aufrufe von e oder eng zwischen pr << eng und is >> e stattfinden, ist e == eng true.
Diese Funktionsvorlagen sind für normale unqualifizierte oder qualifizierte Suche nicht sichtbar und können nur durch argumentabhängige Suche gefunden werden, wenn decltype(e) eine zugeordnete Klasse der Argumente ist.
Inhalt |
[bearbeiten] Parameter
| os | - | Ausgabestrom, in den die Daten eingefügt werden sollen |
| ist | - | Eingabestream, aus dem die Daten extrahiert werden sollen |
| e | - | Pseudo-Zufallszahlengenerator |
[bearbeiten] Rückgabewert
1) os
2) is
[bearbeiten] Komplexität
1,2) O(r).
[bearbeiten] Ausnahmen
Defect reports
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3519 | C++11 | Die Form der Einfüge- und Extraktionsoperatoren war nicht spezifiziert. | Als versteckte Friends spezifiziert. |