3
문자열에서 다른 유형의 데이터를 추출하려고합니다.문자열을 사용하여 문자열을 __uint128_t로 변환하십시오.
Unix/UnixSocket.cpp:158:10: error: ambiguous overload for ‘operator>>’ in ‘hdr >> id_client’ Unix/UnixSocket.cpp:158:10: note: candidates are: In file included from /usr/include/c++/4.7/sstream:39:0,
from Unix/UnixSocket.cpp:11: /usr/include/c++/4.7/istream:118:7: note: std::basic_istream<_CharT,
_Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT,
_Traits>::__istream_type = std::basic_istream<char>] <near match> /usr/include/c++/4.7/istream:118:7: note: no known conversion for argument 1 from ‘__int128 unsigned’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}’ /usr/include/c++/4.7/istream:122:7: note: std::basic_istream<_CharT,
_Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT,
_Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>] <near match> /usr/include/c++/4.7/istream:122:7:
제대로이 __uint128_t
변수에 내 id_client
를 저장할 수있는 방법이 있나요 : 나는 hdr >> id_client
그렇게 할 때
void readHeader(char buf[BUFFSIZE])
{
std::istringstream hdr(buf);
__uint128_t id_client;
hdr >> id_client; // doesn't compile
}
는이 오류를 받고 있어요?
유형이 표준 유형이 아니기 때문에 표준 라이브러리는 유형을 지원하지 않습니다. 수동으로 수를 구문 분석하고 변환해야합니다. –
컴파일러가 지원하는 경우'uint128_t '를 사용할 수 있습니다. – justanothercoder
@JoachimPileborg 저는 그들이 컴파일러에 유형을 추가 한 clang/gcc 팀의 표준 라이브러리를 보완하고 있다고 확신합니다. 그것이 발견 될 수 있다면 그것은 흥미로운 질문입니다. –