On Fri, 11 Sep 2009 11:20:03 -0400, Andrei Alexandrescu <[email protected]> wrote:

Steven Schveighoffer wrote:
On Thu, 10 Sep 2009 17:41:19 -0400, Rainer Deyke <[email protected]> wrote:
Proxies, especially proxies that add functionality to their base type,
cannot act exactly like the type they are proxying.  Using a proxy
therefore requires the significant mental overhead of keeping track of
all the corner cases in which the proxy does not act like the type it is
proxying, as well as the hassle of working around those limitation
whenever they come up.
They can act like the base type up to a point. You make it sound like a chore to use a wrapper type, but the truth is they are easy to use, there are not that many cases to worry about.

My experience with wrappers in C++ has been similar to Rainer's. Essentially you can't define "smart references" in C++. I hope we were or will be able to fix that with the "alias this" feature.

My experience with Proxy objects in .Net remoting has been good. Granted, it's not a true wrapper, since the object has to derive from a certain base class, but it works very seamlessly without much effort. I guess it's a matter of how much you expect from your wrapper.

I also agree that C++ doesn't allow complete smart references, but we aren't dealing with C++ here, are we :)

-Steve

Reply via email to