부스트 또는 STL로 사용자 정의 문자열을 표시 할 수있는 C ++ 어설 션?

StackOverflow https://stackoverflow.com/questions/607299

문제

나는 정말로 갈 수 있기를 원한다 : (C ++)

assert( num > 0, "The number must be greater than zero!");

c# xna에는 정확히 다음을 수행하는 방법이 있습니다.

Debug.Assert( num > 0, "The number must be greater than zero!");

런타임이 "어설 션 실패"오류가 아니라 의미 전체 오류를 제공하도록하는 방법이 있습니까?

도움이 되었습니까?

해결책

대부분의 주장에서 이것을 사용할 수 있습니다.

assert(("The number must be greater than zero!",  num > 0));

다른 팁

런타임은 일반적으로 실패한 표현식을 표시하므로 다음과 같은 작업을 수행 할 수 있습니다.

assert(num > 0 && "The number must be greater than zero!");

논리에는 영향을 미치지 않지만 어설 션 실패 메시지에는 설명 문자열이 포함됩니다.

또한 STL이나 부스트가 필요하지 않고 작동합니다.

assert (num> 0 && "숫자는 0보다 커야합니다!");

부스트를 사용하여 다음과 같이 설명대로 자사를 사용할 수 있습니다. http://www.boost.org/doc/libs/1_50_0/libs/utility/assert.html:

#include <boost/assert.hpp>
/* ... */

BOOST_ASSERT_MSG( num > 0, "The number must be greater than zero!");

요청한대로 정확하게 수행합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top