형지정 없이 printf 하는 방법

sada0220의 이미지

printf("%d",a); 할 때,

출력하고자 하는 변수의 타입을 모르는 상황에서,

지정자 없이 출력하는 방법 없나요?

cout..은 말구, 혹시 방법이 있나요?

klara의 이미지

없습니다. 뭔가 착각하고 계신듯 한데, cout이라고해서 타입을 모르는데 출력해주는게 아닙니다.
각 타입별로 연산자가 오버로딩되어있기 때문에, 컴파일러가 알아서 처리해주는 것 뿐입니다.
컴파일 타임에 타입을 알아낼 방법이 없다면, cout으로도 출력은 안됩니다.
std::cout으로 에러없이 출력이 된다면, 그것은 컴파일 타임에 타입을 정할 수 있었다는 것이고, 당연히 인간도 할수 있습니다.
타입 선언이 코드의 저멀리에서 선언되었거나, 매크로 혹은 템플릿이 복잡하게 얽혀있는 코드라서 타입이 무엇인지 알아내기가 어려운 경우는 있겠지만요.