[GiNaC-list] Usage of designated initializer in factor.cpp forces c++20 on GiNaC

Igor Machado igor.machado at gmail.com
Sat Oct 28 18:10:35 CEST 2023


Thanks for the response Richard.. I had myself to do the same recently on a
c++17 project that I have, which is also c++20 friendly. But I also
discovered that c++20 still has some issues in some current popular
systems, such as google colab, so I was also forced to remove this nice
feature.
I can suggest you, if not using yet, to put flag -pedantic on g++, so that
it will force the project to be iso compatible, otherwise it wont complain
(but I dont know how to do it cross compiler, like msvc flags, g++, clang
and so on.. very hard c++ world :D hahaha)
Best regards!
Igor

Em sáb., 28 de out. de 2023 23:57, Richard B. Kreckel <kreckel at in.terlu.de>
escreveu:

> Hi Igor,
>
> Thank you for pointing out this little transgression of the language
> standard version.
>
> On 10/1/23 00:57, Igor Machado wrote:
> > In the end, I managed to find and fix the error, so I wanted you to know
> > that the file factor.cpp from GiNaC is using designated initializers,
> > which is only part of c++20... and when I activated c++20 here, the
> > linking was broken on windows! So, a solution was to change (around line
> > 2344):
> > factorization_ctx ctx = {.poly = poly, .x = x, .syms_wox = syms_wox};
> > And transform into this:
> > factorization_ctx ctx{poly, x, syms_wox};
> >
> > After that, I can enable c++17 and it works on GCC, Clang and MSVC! For
> > GCC and Clang, they don't complain on designated initializers, even if
> > it's c++17 standard...
>
> It is not worth pulling in C++20 for this. We'll change it to a
> brace-closed initializer list as you suggest.
>
> All my best,
>    -richy.
> --
> Richard B. Kreckel
> <https://in.terlu.de/~kreckel/>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ginac.de/pipermail/ginac-list/attachments/20231029/cef2af00/attachment.htm>


More information about the GiNaC-list mailing list