なぜ istringstream は接尾辞付きの数値リテラルを完全に読み取れないように見えるのでしょうか?
#include <iostream>
#include <sstream>
using namespace std;
int main() {
long long x = 123ULL; // shows 123ULL is a valid long long literal
istringstream iss("123ULL");
iss >> x;
cout << "x is " << x << endl;
char extra;
iss >> extra;
cout << "remaining characters: ";
while(!iss.eof())
{
cout << extra;
iss >> extra;
}
cout << endl;
return 0;
}
このコードの出力は
x is 123
remaining characters: ULL
この動作はロケールによって制御されますか? で受け入れられる文字列に関する明確なドキュメントを誰かに教えてもらえistringstream::operator>>(long long)
ますか?