Comment Response: Finding a Voice for a Blog

A reader commented on my first blog entry, and my first writing about C++/CLI in over a year, stating the following   RE: The Revised C++ Language Design Supporting .NET — Part 1 12/2/2003 4:15 PM Tim Sweeney You poor, confused soul. This is actually a variation of Buzz Lightyear’s response to Woody in the…

3

Making a Virtual Table Context-Sensitive

In part 1 of this discussion [the January 28th Blog entry], I pointed out a different behavior between the C++ and CLR Object Models with regard the identity of a derived polymorphic object during the construction of its base class sub-objects. Under the CLR object model, the embryonic derived object is always treated as an…

4

Smalltalk and C++ — a Reader Comment and Response

A reader, Chris Hanson, writes:   re: A Fundamental Difference in Class Behavior between the Native and Managed Object Model   In other words, Managed C++ actually behaves like an object-oriented language, such as Smalltalk or Objective-C.  An instance of a class is an instance of that class, no matter where in the hierarchy a…

1

A Fundamental Difference in Class Behavior between the Native and Managed Object Model

I have used two primary metaphors in my discussions of bring C++ to the .NET platform. In terms of the different physics of the two object models, I have distinguished them as Kansas and Oz, and claimed with little apparent success that the physics of the two are very different. But the biology of the…

7

Some Performance Notes on Virtual Function in ISO C++

The elimination of the virtual mechanism in the invocation of a virtual function is in most cases trivial when measured against the elimination of any call invocation at all – that is, when the call is expanded inline. An inline expansion not only saves the overhead of the function call, but exposes a wider sequence…

2

A Question of Const

A reader, J. Daniel Smith, inquiries     You wrote “The absence of const support in the base class library… “;   Can you elaborate any on what the plans are for “const” as they relate to C++/CLI and C#?   I know “const” can open up a whole can of worms about all the…

6

A Question about Multiple Inheritance Efficiency

A reader, Johan Ericsson, comments   re: Further Discussion of MI and general C++/CLI design issues   I appreciate your discussion of the multiple inheritance issue.   Is the performance problem of MI only inherent in virtual base clases?   I’ve used MI in a lot of my code, but I’ve never found the need…

3

A Question about Copy Constructors in C++/CLI

Daniel O’Connell writes,             re: Followup: The Absence of MI   Hmm, Copy constructors…One would hope that the implementation and documentation is done *very* carefully(IE, marked as non-CLS compliant or implemented to work with ICloneable). I don’t personally feel the pattern works well with non-C++ code(how many VB programmers are going to be instantly aware…

2

Further Discussion of MI and general C++/CLI design issues

That same reader from the previous two posting responds as follows, with some editing. I am responding only because it gives me an excuse to speak of technical implementation issues, which I enjoy, and which readers often find interesting. With regard to my example of               base *pb = pd;   as one case…

7

Followup: The Absence of MI

That same reader from the previous posting now writes the following, where he quotes me and then makes his comment [this is great, by the way. this is much more engaging than the technical writing]:   “There are some significant implementation and performance problems with multiple inheritance – particularly virtual base classes which contain data…

6