Weed wrote:
Weed пишет:
Bill Baxter пишет:
On Sun, Feb 22, 2009 at 1:02 AM, Weed <[email protected]> wrote:
Bill Baxter пишет:
2009/2/21 Weed <[email protected]>:
Weed пишет:
Bill Baxter пишет:

Why don't you just show us the class in the way you would like to
write it in C++, and we'll show you how to write it in D, or finally
agree with you that it's not possible.   But as long as you continue
to be hand-wavy about "common base classes" we're at a bit of an
impasse.  So far everyone thinks D can do what you want it to do based
on your vague descriptions.
As I said, you can write everything using "goto" and "if".

...But why you do not like the original example of this thread?
Please post again.  I don't seem to recall any detailed example.

--bb
http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D&artnum=83506
You should use a struct there!   Your code does not show you doing
anything that would even remotely suggest using a class is worthwhile.
 You're doing value operations on value types.  That's what structs
are for.
        
Why?

What if I have not substantiated the fact that c1 is a class I should
use there a structure?

Used in D a model of placement classes only in heap have a rule "if you
made the class and trying to pass it by value is somewhere in your code,
there is a design error?

Explains why the question is given in this form:

I am received or wrote a classes. Is it right to overload the operator
opAdd and use them? I think yes.
> But why not allow this operation at the same speed that allows C++?

Actually, in D, it's really difficult to give a class value semantics.
If a, b are members of some class, consider
(1) a = a + b;
(2) a += b;
It is nearly impossible to efficiently make both of these have the same effect!! You can only do it with either copy-on-write, ie, even case (2) always allocates; or by using a proxy class.
This is something which I consider to be a serious problem.
Much more serious than the speed issue.

Reply via email to