B Revzin - if const expr isn't broken (was Re: My Meeting C++ Keynote video is now available)

H. S. Teoh hsteoh at quickfur.ath.cx
Thu Jan 17 00:19:06 UTC 2019

On Wed, Jan 16, 2019 at 11:43:19PM +0000, John Carter via Digitalmars-d-announce wrote:
> Given that I have probably written a lot more C++ code in my life than
> d...
> ...I do find it remarkable that I can read the d code quite easily
> without reaching for the reference manual, but to make sense of his
> C++, it sends me trawling around cppreference.com

Yes, that's one of the outstanding qualities of D, and one that I was
immensely impressed with when I perused the Phobos source code for the
first time.  After having (tried to) read glibc's source code (if you
never have, I advise you not to unless you're a jaded, hardened,
hardcore C professional -- it's *not* for the faint of heart), it was
like a breath of fresh air.  D does have its warts and dark corners, but
I think on the readability front it has scored a home run compared to
the equivalent C/C++ code.

> I find Andrei's claim that checkint with a void hook reverts to int is
> amazing, and would love to verify that at the assembly level for both
> the C++ and d implementations.

This is actually quite trivial in D.  I'm too lazy to actually check the
checkedint source code, but I'd surmise it's something as simple as:

	template CheckedInt(alias hook) {
		static if (is(typeof(hook) == void))
			alias CheckedInt = int;
		else {
			struct CheckedInt {
				... // actual CheckedInt implementation here

or something along these lines.  Standard D practice.  (I daren't even
try to imagine what I'd have to do to make this work in C++. After
having worked with C++ for about 2 decades or so, I don't have many good
things to say about it, nor do I expect very much from it anymore.)


Windows 95 was a joke, and Windows 98 was the punchline.

More information about the Digitalmars-d-announce mailing list