The more interesting question
Alex Rønne Petersen
alex at lycus.org
Wed May 16 07:10:42 PDT 2012
On 16-05-2012 16:04, Gor Gyolchanyan wrote:
> On Wed, May 16, 2012 at 5:25 PM, Steven Schveighoffer
> <schveiguy at yahoo.com <mailto:schveiguy at yahoo.com>> wrote:
>
> On Tue, 15 May 2012 18:31:26 -0400, deadalnix <deadalnix at gmail.com
> <mailto:deadalnix at gmail.com>> wrote:
>
> Le 15/05/2012 17:51, Christophe a écrit :
>
> deadalnix , dans le message (digitalmars.D:167404), a écrit :
>
> This looks to me like a bad practice. C string and D
> string are
> different beasts, and we have toStringz .
>
>
> C string and D string are different, but it's not a bad idea
> to have
> string *literals* that works for both C and D strings,
> otherwise using
> printf will lead to a bug each time the programmer forget
> the trailing
> \0.
>
>
> Due to slicing, it is already unsafe to pass a D string to C
> code. The main problem is array casting silently to pointers,
> making the error easy to do.
>
>
> How so? strings are immutable, and literals are *truly* immutable.
>
>
> Fixing the problem for literal isn't going to solve it at all.
>
> The real solution is toStringz
>
>
> toStringz can allocate a new block in order to ensure 0 gets added.
> This is ludicrous!
>
> You are trying to tell me that any time I want to call a C function
> with a string literal, I have to first heap-allocate it, even though
> I *know* it's safe.
>
> I don't see a "problem" anywhere. The current system is perfect for
> what it needs to do.
>
> -Steve
>
>
> Aside from the string problem the very existence of this debate exposes
> a fundamental flaw in the entire software engineering industry: heavy
> usage of ancient crap.
> If some library is so damned hard to refresh, then something's terribly
> wrong with it. It's about damned time ancient libraries are thrown away.
>
> --
> Bye,
> Gor Gyolchanyan.
I... don't think that's a very pragmatic view.
Yes, software sucks. Deal with it, etc.
--
Alex Rønne Petersen
alex at lycus.org
http://lycus.org
More information about the Digitalmars-d
mailing list