Tim Goetze wrote:
> Enter gcc version 3, which drops multi-line inline assembly support.

The following compiles fine with gcc 3.3.3:

void f()
{
        __asm__ ("nop\n"
                 "nop\n");
}

> Enter gcc version 3, moving the vtable member to memory offset 0 of a
> derived type even if the base type is in C which doesn't know about
> vtables.

There are no memory layout guarantees for non-POD types.

If your external functions use the correct type (i.e., a pointer to
the base type), the compiler will automatically cast class pointers in
the correct way.  Otherwise, you have to cast to the base type
yourself whenever you 'export' a pointer.

> Enter gcc version 4, which requires the templated types' constructor
> code be rewritten in the most nonsensical, misleading and ugly fashion
> possibly imaginable this side of Hungary and Redmond, WA, according to
> our (now not so very young anymore) hero.

Could you show some details?  Probably the old code wasn't quite
correct according to The Standard(TM).


Regards,
Clemens

Reply via email to