나는 to_string
이 templatized이고 후드 아래 stringstream
을 사용했다고 생각했습니다.to_string Templatized가 아닌 이유는 무엇입니까?
그렇지 않습니까?
class foo{};
ostream& operator<<(ostream& os, const foo& /*bar*/){
os << "foo";
return os;
}
int main() {
foo bar;
string tsTest = to_string(bar);
return 0;
}
을하지만 분명히 그 플릿되지 to_string
원인 작동하지 않습니다
나는이 작업을 수행 할 수 있어야합니다.
'foo' 네임 스페이스에서'to_string' 오버로드를 정의한 다음'using '을 통해 네임 스페이스를 가져 오는 것은 어떻습니까? 해당 코드 스 니펫에서 ostream의 필요성은 무엇입니까? – peppe
'std :: stringstream'은 변환하는 데 가장 효율적인 방법이 아니므로 템플릿이없는 이유입니다. 따라서 각 오버로드가보다 효율적인 함수를 사용합니까? – Galik
@peppe 코드 스 니핏에서'operator <<'의 필요성은'to_string'이 "stringstream"을 사용하여 "foo"를 삽입하도록 허용하는 것으로 생각했습니다. 그 질문에 거짓말을하는 이유는'to_string'이'stringstream'을 사용하지 않는 이유는 무엇입니까? –