Weed пишет: > Weed пишет: >> Weed пишет: >>> Andrei Alexandrescu пишет: >>>> Weed wrote: >>>> [about structs vs. classes] >>>>> It is very a pity. >>>>> My small opinion: it is impossible to reduce performance for struggle >>>>> against potential errors - such languages already are, it more >>>>> high-level. It how to refuse pointers because they are dangerous, >>>>> difficult for beginners and without them it is possible to make any >>>>> algorithm. >>>> It's attractive to deal in absolutes, but also dangerous. When C came >>>> about, naysayers complained that it was consistently 30% slower than >>>> assembler, and generated larger code by an even higher margin. Then, >>>> some asked, what would you choose, one OS that's cool because it's >>>> written in C, or one that's one third faster? and so on. What people >>>> have forgotten by now is that C *was* high level. And it *did* incur a >>>> performance hit. It also had desirable properties that overcame that hit. >>>> >>> Can in C# (it uses as far as I know too such sharing) such approach and >>> it is justified - microsoft accelerates replacement of hardware for new >>> OS. :) But we after all not blindly copy C#? >>> >>> After all this problem can be solved, IMHO. >>> I suggest to make so: >>> >>> 1. To leave structures in that kind in which they is (POD) >>> >>> 2. To permit classes declaration such what they in C++ >>> >>> 3. To permit transfer the classes on value (for compulsory pass by >>> reference and for declaration through "new" now we have "ref" keyword) >>> >>> 3. To check slicing during compilation. It is possible? >> For example prohibit assigning on value to the types, not being base or >> this type >> >>> 4. "scope" for classes to deprecate as superfluous >>> >>> >>> In that case there will be problems? >>> >>> > > Who agrees with me? There are still ideas as it is possible to solve > this problem and not to destroy language?
And against arguments are still necessary