www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.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
electronics



c++.beta - [bug] dmc 8.50.3n Internal error: struct 2169

↑ ↓ ← Arjan Knepper <arjan askme.to> writes:
This one makes almost all boost lib fail to compile and IIRC didn't
appear with te 8.49 version.



compile the code with:
dmc -cpp -c -gl -S -Ae -Ar -ND ie2169.cpp

//----------------------------------------------------------------
namespace ut_detail {

struct unused {};

template<typename R>
struct callback0_impl {
    virtual ~callback0_impl() {}
};


template<typename R, typename Functor>
struct callback0_impl_t : callback0_impl<R> {
    explicit callback0_impl_t( Functor f ) : m_f( f ) {}

private:
    Functor m_f;
};

} // namespace ut_detail

template<typename R = ut_detail::unused>
class callback0 {
public:
    callback0() {}

    template<typename Functor>
    callback0( Functor f )
      : m_impl( new  ut_detail::callback0_impl_t< R, Functor >( f
 ) ) {}

private:
    ut_detail::callback0_impl< R >  *m_impl;
};


struct test_main_caller {
    test_main_caller( int argc, char** argv ) {}

private:
    // Data members
    int      m_argc;
    char**   m_argv;
};


int main ( int  argc,  char *argv [] )
{
   callback0 <> ( test_main_caller( argc, argv ) );

   return ( 0 );
}
May 08 2007
↑ ↓ → Walter Bright <newshound1 digitalmars.com> writes:
Arjan Knepper wrote:
 This one makes almost all boost lib fail to compile and IIRC didn't
 appear with te 8.49 version.

Thanks, I'll investigate it.
May 08 2007