Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - New dm.hpp for boosters, 4 bug reports, 1 question
For those using the boost diff file for DMC compatibility, the new dm.hpp file should be changed to the following: -------------------------------------------- // Digital Mars C++ compiler setup: #define BOOST_COMPILER __DMC_VERSION_STRING__ #define BOOST_HAS_LONG_LONG #define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL #define NEEDS_PASTING_TOKEN_FOR_JUXTAPOSING #define BOOST_NO_OPERATORS_IN_NAMESPACE #define BOOST_NO_SFINAE #define BOOST_NO_TEMPLATE_TEMPLATES #define BOOST_NO_USING_TEMPLATE #define BOOST_USE_INT_3_INSTEAD_OF_ASSERT #pragma once // check for exception handling support: #ifndef _CPPUNWIND # define BOOST_NO_EXCEPTIONS #endif #if (__DMC__ < 0x833) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # endif #endif -------------------------------------------------- .or just wait for boost 1.31; should be out in no time. -------------------------------------------------- Bug report 1: struct base< Derived > { struct inner {}; }; template< typename <T> > struct derived : base< derived<T> > { inner x; //<- should flag error void f() { inner y; //<-should flag error } }; .as inner is a dependent type requiring 'typename'. Won't compile under Comeau's latest Beta, but it compiles without warnings under DM. -------------------------------------------------- Bug report 2: struct base {}; struct derived : base {}; derived make_derived_temporary(){ return derived; } void f() { base const & temp_ref = make_derived_temporary(); ..statements... } <- the temporary should last till here, but in DM it is destroyed immediately upon assignment to the reference. -------------------------------------------------- Bug report 3: IDDE lockup, reasons unknown, but occurs while Parsing imports. -------------------------------------------------- Bug report 4: In IDDE, assert() terminates the app; I'm using the following, so that execution stops at the line of the assertion: dmassert.hpp #ifdef _DEBUG # ifdef assert # undef assert # endif # define assert(x) do{if(!((x)))asm int 3;}while(0) #else # define assert(x) do{(void)(0);}while(0) #endif -------------------------------------------------- Question: Why doesn't DM automatically define _DEBUG in debug mode? I always have to tell it to define it. Missing something? Cheers! Jan 09 2004
-------------------------------------------------- Bug report 3: IDDE lockup, reasons unknown, but occurs while Parsing imports. -------------------------------------------------- Jan 09 2004
Thanks, Dan, I'll check 'em out.Question: Why doesn't DM automatically define _DEBUG in debug mode? I Jan 10 2004
"Walter" <walter digitalmars.com> wrote in message news:btqlgq$1dvd$1 digitaldaemon.com...Thanks, Dan, I'll check 'em out.Question: Why doesn't DM automatically define _DEBUG in debug mode? I Jan 10 2004
"Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:btqpec$1kpd$1 digitaldaemon.com..."Walter" <walter digitalmars.com> wrote in message news:btqlgq$1dvd$1 digitaldaemon.com...Thanks, Dan, I'll check 'em out.Question: Why doesn't DM automatically define _DEBUG in debug mode? I Jan 11 2004
|