From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public From: jmartin@cs.ucla.edu (Jay Martin) Subject: Re: What is wrong with OO ? Date: 1997/01/11 Message-ID: <5b6rmm$2sk6@uni.library.ucla.edu>#1/1 X-Deja-AN: 209040636 references: <5acjtn$5uj@news3.digex.net> <5b3kpk$2gba@uni.library.ucla.edu> <5b60v0$r16@uni.library.ucla.edu> <5b67uv$gfe@hermes.synopsys.com> organization: University of California, Los Angeles newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng Date: 1997-01-11T00:00:00+00:00 List-Id: jbuck@synopsys.com (Joe Buck) writes: >jmartin@cs.ucla.edu (Jay Martin) writes: >>An example of inlining getting the shaft by compiler writers is G++ >>which does not support the normal inlining of templated class methods. >Not quite true: only the first occurrence of a template function, the >one that causes the expansion of the template cannot be inlined. This >is a problem with the design of the template expansion code and long >recognized by the maintainers as a bug. >This problem is fixed in the 2.8.0 snapshots, which has a new template >implementation. As I said the "next release". >>There is a "G++ only" workaround (source code hack) in the latest >>compiler >No, the workaround (explicit template expansion) is to write standard >(draft ANSI/ISO standard) code to explicitly expand the template; all >occurrences will then be inlined. Well gee if I have to insert "explicit template expansion" lines not needed by any other C++ compiler or the standard that sounds like "G++ only source code hack" to me. Of course, since I might also use an older C++ compiler on my code that doesn't yet recognize expansions, then I am going to have to put "#ifdefs" around these expansions. Yee Haw! This "bug" (lack of inlining) has been in G++ for YEARS, it just shows how much priority (Zero) that so many programmers give to basic data abstraction (you can't efficiency implement abstract data-structures like "smart pointers" in C++ without inlining). Jay