Boost logo

Boost :

Subject: Re: [boost] quince: queries in C++ expressions
From: Michael Shepanski (mps_at_[hidden])
Date: 2014-07-16 01:49:39


On 16/07/2014 2:14 PM, Mostafa wrote:
> On Tue, 15 Jul 2014 18:27:07 -0700, Michael Shepanski
> <mps_at_[hidden]> wrote:
>
>> Quince, and the application code that uses it, need a C++11 compiler,
>> and a pretty new one too: see
>> http://quince-lib.com/preparation/prerequisites.html#preparation.prerequisites.a_good_c_compiler
>> . On the other hand there is no requirement on users to learn any
>> C++11 features. You can access all of quince's features by writing
>> C++03 code, and feeding it to your late-model C++11 compiler.
>
> Thanks. It would help if that was explicitly mentioned in the
> documentation.

http://quince-lib.com/queries_in_c_expressions/the_quincessential_dot_points.html
does say "Quince is written in C++11". :)

> (g++ by default uses C++03.)

That's interesting. You're right, of course, and yet I didn't exert any
effort to make it accept C++11. On my ubuntu machine I use Boost.Build,
my user-config.jam contains this line:
     using gcc : 4.7 : g++-4.7 ;
and somehow gcc gets invoked with the commandline option -std=c++11.

> Out of curiosity, does the library *need* to be written in C++11, and,
> if so, why?

If I tried to rewrite it in C++03, its length would multiply, if only
because of the need to replace variadic templates by a combinatorial
explosion of overloads.

But your question was about *need*, so perhaps the uses of decltype are
more relevant. I do not think I could rewrite them to avoid decltype.
(Maybe somebody else could, but I found it hard enough without any such
constraint.)

Regards,
--- Michael


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk