www.digitalmars.com         C & C++   DMDScript  

D - typeless consts

reply "Pavel Minayev" <evilone omen.ru> writes:
Feature suggestion. It would be nice if D could determine
type of constant automatically, so we could write:

    const i = 10, d = 123.456, s = "Hello, world!"

Would be great...
Dec 21 2001
next sibling parent reply "Walter" <walter digitalmars.com> writes:
"Pavel Minayev" <evilone omen.ru> wrote in message
news:a003uc$1m0e$1 digitaldaemon.com...
 Feature suggestion. It would be nice if D could determine
 type of constant automatically, so we could write:

     const i = 10, d = 123.456, s = "Hello, world!"

 Would be great...

Actually, with string literals, the compiler does do that. But it has resulted in a lot of problems. It's much better to just say what type it is.
Dec 21 2001
parent reply "Pavel Minayev" <evilone omen.ru> writes:
"Walter" <walter digitalmars.com> wrote in message
news:a00e4m$1thm$1 digitaldaemon.com...

 Actually, with string literals, the compiler does do that. But it has

The following program doesn't compile: const i = 666; const s = "hello, world!";
 resulted in a lot of problems. It's much better to just say what type it

Problems?
Dec 22 2001
parent reply "Walter" <walter digitalmars.com> writes:
"Pavel Minayev" <evilone omen.ru> wrote in message
news:a01g86$2ma7$2 digitaldaemon.com...
 "Walter" <walter digitalmars.com> wrote in message
 news:a00e4m$1thm$1 digitaldaemon.com...

 Actually, with string literals, the compiler does do that. But it has

The following program doesn't compile: const i = 666; const s = "hello, world!";

Yes, it won't, because while "hello, world" starts out typeless, the declaration for s needs a type.
 resulted in a lot of problems. It's much better to just say what type it

Problems?

One problem, for example, is "a" a char, char[1], wchar, wchar[1]? This causes trouble with overloading.
Dec 22 2001
parent reply "Pavel Minayev" <evilone omen.ru> writes:
"Walter" <walter digitalmars.com> wrote in message
news:a02ebb$ajb$1 digitaldaemon.com...

 Yes, it won't, because while "hello, world" starts out typeless, the
 declaration for s needs a type.

That was exactly my proposal - make the type in const declarations unnecessary...
 One problem, for example, is "a" a char, char[1], wchar, wchar[1]? This
 causes trouble with overloading.

Whatever it suites - like a literal "a" can be a char or a char[1] depending on context. Ambiguities with overloading are easily resolved using cast(). Or, typed consts could be used in these cases.
Dec 22 2001
parent "Walter" <walter digitalmars.com> writes:
"Pavel Minayev" <evilone omen.ru> wrote in message
news:a02ikb$dlr$1 digitaldaemon.com...
 "Walter" <walter digitalmars.com> wrote in message
 news:a02ebb$ajb$1 digitaldaemon.com...
 Yes, it won't, because while "hello, world" starts out typeless, the
 declaration for s needs a type.

unnecessary...
 One problem, for example, is "a" a char, char[1], wchar, wchar[1]? This
 causes trouble with overloading.

depending on context. Ambiguities with overloading are easily resolved using cast(). Or, typed consts could be used in these cases.

The language can handle a few ambiguities requiring casting like string literals. Doing it in general, like for variables, will fill the code up with ugly casting.
Dec 22 2001
prev sibling parent "Sean L. Palmer" <spalmer iname.com> writes:
Lazy, lazy, lazy!!!

Sean

"Pavel Minayev" <evilone omen.ru> wrote in message
news:a003uc$1m0e$1 digitaldaemon.com...
 Feature suggestion. It would be nice if D could determine
 type of constant automatically, so we could write:

     const i = 10, d = 123.456, s = "Hello, world!"

 Would be great...

Dec 22 2001