Boost logo

Boost Users :

Subject: Re: [Boost-users] [ptr_container] ptr_map and MinGW: "a declaration of assert must be available", even with cassert included
From: philipp_muenzel_at_[hidden]
Date: 2009-06-19 11:12:58


Thanks very much for the ideas. I looked it up but can't find anything unusual:

My include path reads as follows:

C:/MinGW/bin/../libexec/gcc/mingw32/3.4.5/cc1.exe -E -quiet -v -iprefix
C:\MinGW\bin\../lib/gcc/mingw32/3.4.5/ -
ignoring nonexistent directory "C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../mingw32/include"
ignoring nonexistent directory "/mingw/lib/gcc/mingw32/3.4.5/../../../../mingw32/include"
#include "..." search starts here:
#include <...> search starts here:
 C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include
 C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/include
 /mingw/lib/gcc/mingw32/3.4.5/../../../../include
 /mingw/include
 /mingw/lib/gcc/mingw32/3.4.5/include
 /mingw/include
End of search list.

And this is the assert.h:
/*
 * assert.h
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is a part of the mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER within the package.
 *
 * Define the assert macro for debug output.
 *
 */

/* We should be able to include this file multiple times to allow the assert
   macro to be enabled/disabled for different parts of code. So don't add a
   header guard. */

#ifndef RC_INVOKED

/* All the headers include this file. */
#include <_mingw.h>

#undef assert

#ifdef __cplusplus
extern "C" {
#endif

#ifdef NDEBUG
/*
 * If not debugging, assert does nothing.
 */
#define assert(x) ((void)0)

#else /* debugging enabled */

/*
 * CRTDLL nicely supplies a function which does the actual output and
 * call to abort.
 */
_CRTIMP void __cdecl __MINGW_NOTHROW _assert (const char*, const char*, int) __MINGW_ATTRIB_NORETURN;

/*
 * Definition of the assert macro.
 */
#define assert(e) ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__))

#endif /* NDEBUG */

#ifdef __cplusplus
}
#endif

#endif /* Not RC_INVOKED */

>
> Well, the is in scoped_array then. But I looked there too, and it uses
> BOOST_ASSERT just fine. If you look into <assert.h> on your system, then
> it should contain the assert() macro. Could it be that your include path
> is wrong or garbled?
>
> -Thorsten

______________________________________________________
GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://movieflat.web.de


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net