This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Please support coo.h

typedef struct CBase { int i; } CBase;
typedef struct CT1 { EXTENDS(CBase) ... } CT1;
typedef struct CT2 { EXTENDS(CT1) ... } CT2;
typedef struct CTN { EXTENDS(CTN_1) ... } CTN;
CTN t;
t.i=1; //need not t.CTN_1....CT2.CT1.CBase.i ---complex
CBase* p=&t.CBase; //need not t.CTN_1....CT2.CT1.CBase, need not
(CBase*)&t ---not safe

2010/6/11 Dave Korn <>:
> On 10/06/2010 18:07, yuanbin wrote:
>> This compiler's extension is valuable
> ?No, it isn't very valuable, sorry to be blunt. ?I think you are following a
> really wrong path here. ?You are trying to implement a C++-alike
> object-oriented system in C. ?That makes sense as far as it goes, but if you
> find yourself having to propose modifying the C compiler in a direction that
> basically makes it speak C++, you might as well just use C++ in the first
> place. ?You want the compiler to automatically choose one of several different
> ways to initialise a union according to the data type of the argument you use
> to initialise it with; basically, that means you want overloaded constructors.
> ?So you should just use C++, which already is C with overloaded constructors.
> ?And it also already has all the other features that you'll discover you need
> in the compiler as you carry along this path.
> ?By the time you get to the end of your journey, "coo.h" will be an empty
> file and all the functionality will have been added to the C compiler until it
> turns into a C++ compiler. ?I think you need to choose a different plan.
> ? ?cheers,
> ? ? ?DaveK

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]