www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript

D - typeless consts

↑ ↓ ← "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
"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
↑ ↓ "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
↑ ↓ "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
↑ ↓ "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
↑ ↓ → "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
→ "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