2012-12-01 5 views
4

std :: endl이 std :: cout 및 std :: wcout과 함께 작동하는지 궁금합니다.std :: endl은 cout과 wcout 모두에서 작동합니까?

누구나 분명히 알 수 있습니까?

+0

테스트 코드를 작성하는 것은 어떻습니까? – asheeshr

+0

나는 그가 wcout과 함께 endl을 사용하는 것에 문제가 있는지 묻는 것을 의미한다고 생각합니다. – ctor

+0

머니퓰레이터가 작동하는 방식을 설명하는 세부 정보를 추가했습니다. –

답변

9

예. 사실, std::endlstd::basic_ostream 템플릿의 전문화에 대한 조작자로 작동 할 함수 템플릿입니다.


좀 더 상세히

:

basic_ostream<charT, traits> & 
operator<<(basic_ostream<charT, traits> (*pf)(basic_ostream<charT, traits> &)); 

적합한 기능에 과부하를 호출의 효과 return pf(*this)이다 27.7.3.6은 다음과 같이 std::basic_ostream 템플릿 operator<< 대한 과부하를 포함 할 것을 규정하고있다. 따라서 std::cout << std::endl이라고 말하면 실제로는 std::endl(std::cout)이되어 스트림 객체에 대한 참조를 반환합니다.

다른 모든 ostream 조작기는 입력 조작자와 동일한 방식으로 작성됩니다.


endl 함수 템플릿 마법 지정된 캐릭터 타입에 맞는 "개행"데이터를 생성 widen('\n') 호출이다.

관련 문제