안녕하세요. 프리미티브 유형에 대해 연산자 < <을 과부하 할 수 있습니까? Fx는 int를 쓸 때마다 std :: endl을 작성한다고 말합니다. 자동으로 std :: endl을 출력하도록 int에 대해 < < 연산자를 오버로드 할 수 있습니까? 나는 이것을 시도했다.프리미티브 유형의 연산자 <<을 오버로딩합니다. 그게 가능하니?
std::ostream& operator<<(std::ostream& strm, int & i)
{
strm << i << std::endl;
return strm;
}
그러나 작동하지 않는다. 나는 컴파일러 오류 메시지를 회상 할 수는 없지만, 나는 연산자가 모든 잘못을 과부하시키고 있다고 생각한다. 나는 이런 식으로 위의 오버로드 된 연산자 < < 전화를
int main()
{
int i = 2;
std::out<<"Here is an int " << i;
return 0;
}
을 시도하지만 전혀 작동하지 않습니다. 어쩌면 POD 유형을 과부화 할 수 없습니까?
예. 그것은 완전히 무의미합니다. 그러나 나는 내가 도중에 그것을 할 수 있는지 또는 내가 네 길에서 그것을해야만 하는지를 알지 못했다. 하지만 나는 다른 것을 시도하고 있습니다. – mslot
그리고 boxed int의 생성자뿐만 아니라 모든 int 연산자를 제공해야합니다. – Muxecoid
나는 단지 시연하고 있었음을 확신합니다. 어쨌든, 그것은 그가 boxed int로 무엇을하고 싶은지에 달렸습니다 :) –