Boost logo

Boost :

Subject: Re: [boost] [safe_numerics] Formal review starts today
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2017-03-11 14:27:37

> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Robert Ramey via Boost
> Sent: 09 March 2017 18:32
> To: boost_at_[hidden]
> Cc: Robert Ramey
> Subject: Re: [boost] [safe_numerics] Formal review starts today
> On 3/9/17 7:23 AM, Paul A. Bristow via Boost wrote:
> >> Here are some questions you might want to answer in your review:
> >> - What is your evaluation of the design?

> > Complicated to use (compared to int),
> Hmmm - a major design goal is that it be a no-brainer to use. I'd like
> to see you exand a little on this comment.

One needs to fully understand static_cast - it's an unintuitive name for something that has unexpectedly complicated implications.
> > But that is a consequence of the daft design of the C language.
> tl;dr;
> I want to defend the C language design. My first exposure to C was in
> 1980? I was introduced to Ratfor which was a fortran implemented C like
> language introduced in the Plauger book "Software Tools". After that I
> lusted after a C language tool. The machine I had at my disposal was a
> Data General Eclipse - a 16 bit architecture. I got a hold source code
> for a compiler for the Z80 and managed to port it to the DG machine.
> Then I managed to compile the standard source which my compiler. I was
> hooked! The C language then was the world's first "portable assembler".
> This was huge at the time.

I can't resist saying that my reaction to learning of C design philosophy was LOL :-(

But programmers liked quick'n'dirty and being trusted (the biggest mistake of all),
a host of .edu starting teaching C, and like FORTRANs bottomless pit of working subroutines,
it was unstoppable.

And so here we are putting Band-Aids on the C++ and STL Band-Aids*.

> I'm hoping to bridge two worlds here. I'm not hopeful. I'm a sucker for lost causes.

I'm optimistic. I'm not the only one getting cross with 'mostly work' programs,
and as you observe, people will get *really cross* with 'mostly work' killer cars.
Chris Kormanyos has publicised how to use recent C++ on bare-metal in his book Real-Time C++.

> > Users might appreciate a list of compiler versions that really do work.

They really *must* have such a list.

> >> - Did you try to use the library? With what compiler? Did you have any problems?

> > Had a very brief try with VS 2015 and failed.

John Maddock has since explained why nothing I tried worked. I'm a bit shocked that it hasn't been tested on MSVC. My acceptance
was on the assumption that it would work. It really must be portable over recent GCC, Clang and MSVC at the very minimum.

I suggest that we should pause the review until you adopt John's patches and reissue the review code and then restart the review.

It'll be a bit poor to accept the library until a few people confirm it's working on MSVC.

Keep going!


* Band-Aid Trademark of Johnson and Johnson ;-)

Paul A. Bristow
Prizet Farmhouse
Kendal UK LA8 8AB
+44 (0) 1539 561830

Boost list run by bdawes at, gregod at, cpdaniel at, john at