부스트 또는 STL로 사용자 정의 문자열을 표시 할 수있는 C ++ 어설 션?
문제
나는 정말로 갈 수 있기를 원한다 : (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!");
요청한대로 정확하게 수행합니다.
제휴하지 않습니다 StackOverflow