On 07/16/2014 07:49 AM, Michael Shepanski wrote:
On 16/07/2014 2:14 PM, Mostafa wrote:
On Tue, 15 Jul 2014 18:27:07 -0700, Michael Shepanski
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.prerequisit... . 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... 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.)
As I'm currently doing it for Boost.Fusion, your macro to adapt the types could take advantage of Boost.TypeOf which would be your replacement for decltype : http://www.boost.org/doc/libs/1_55_0/doc/html/typeof.html But C++11-only is fine for me. :)
Regards, --- Michael
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost