Gibt es eine Möglichkeit, std::string
in size_t
zu konvertieren?
Das Problem ist, dass size_t
plattformverantwortlicher Typ ist (während es das Ergebnis von sizeof
ist). Daher kann ich nicht garantieren, dass die Konvertierung von string
in unsigned long
oder unsigned int
es richtig macht.
BEARBEITEN: Ein einfacher Fall ist:
%Vor% Lassen Sie uns für eine Minute annehmen, dass size_t
eine typedef zu einer existierenden ganzen Zahl ist, dh die gleiche Breite wie unsigned int
, unsigned long
oder unsigned long long
.
AFAIR it könnte ein separater (größerer noch) Typ sein, was die Standardformulierung betrifft, aber ich halte das für sehr unwahrscheinlich.
Mit dieser Annahme arbeitend, dass size_t
nicht größer ist als unsigned long long
, entweder stoull oder strtoull mit anschließendem Cast auf size_t
sollte funktionieren.
Unter derselben Annahme ( size_t
definiert in unsigned long
oder unsigned long long
) wäre eine operator>>
Überladung für diesen Typ.
Mit iss.fail () überprüfen Sie den Fehler. Verwenden Sie anstelle von ("a") den Wert, den Sie konvertieren möchten.