Boost logo

Boost :

Subject: Re: [boost] [assert] static_assert envy
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2011-01-17 12:58:33

On 17/01/11 17:24, Beman Dawes wrote:
> On Mon, Jan 17, 2011 at 10:15 AM, Dean Michael Berris<
> mikhailberis_at_[hidden]> wrote:
>> Or would you rather use std::abort() just like the normal
>> cassert implementation does?
> On Windows 7 (at least with VC++), abort() pops up one of those "blah.exe
> has stopped working" dialog boxes. I haven't been able to kill it, in spite
> of lots of google searches, and it drives me crazy.
> That said, std::abort() is probably right for many environments.

This should do the trick:

#include <cassert>
#include <crtdbg.h> // Visual C++-specific
int main()
#ifdef _MSC_VER
     // Redirect errors and assert() failures to stderr
     // instead of pop-up debug message window.
     // NOTE: Comment this 2 lines for debugging with
     // Visual C++ debugger to catch assertions inside.
     _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
     _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
#endif //_MSC_VER

     assert(false && "test"); // no pop-up expected

Best regards,

Mateusz Loskot,
Charter Member of OSGeo,
Member of ACCU,

Boost list run by bdawes at, gregod at, cpdaniel at, john at