함수에 표준 : : ostream에 전달 :C++ - 나는 C++로 작은 디버그 인라인 함수의 생각
_debug(7, cout << "Something something" << someint << endl);
: 이것은 내가 그것을 사용하고자하는 방법의 예입니다
void inline debug(int debug_level, ostream& out) {
if (debug_level <= verbosity) {
out.flush();
}
else {
ostream tmp;
tmp << out;
}
}
그러나 그것은 내가 계획 한대로 작동하지 않습니다 - 자세한 수준이 높거나 같으면 디버그 수준을 함수에 전달할 때만 메시지를 인쇄하고 싶지만 디버그 수준에 관계없이 매번 인쇄되므로 데이터가 유지됩니다 cout 버퍼에. 지금까지는이 함수가 최근에 가지고있는 최선의 생각이 아니라고 생각하지만 여전히 cout, cerr 등과 관련된 버퍼를 지울 수있는 방법이 있는지 알고 싶습니다. 제대로 작동하는 데 이러한 종류의 함수를 사용할 수 있습니까?
null 스트림의 아이디어를 사용하여 Konrad의 경로를 찾으려면 http://stackoverflow.com/questions/760301/implementing-a-no-op-stdostream –
아,이 질문을 살펴보십시오. oldschool-C 매크로가 맘에 들지 않는다. 나는 C++ 방식을 선호한다.) – zbigh
매크로는 C++ 에서처럼 피할 수있다. 두려운 것이다. –