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@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/>