<div dir="ltr"><div>Dear all, congratulations for this amazing software.</div><div>I was struggling a little bit to make it work in CMake, with many linking errors in windows (for linux it was easy, but I need both working) so I recently created a simple Bazel build file for the projects CLN and GINAC, to debug the error.</div><div>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):</div><div>factorization_ctx ctx = {.poly = poly, .x = x, .syms_wox = syms_wox};</div><div>And transform into this: <br></div><div>factorization_ctx ctx{poly, x, syms_wox};</div><div><br></div><div>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...</div><div><br></div><div>So, since it's the only thing from c++20, you should consider if it's work activating a whole new standard just because of this, or to consider that the project is already c++20.</div><div>I personally love c++20, but it's important to notice that some fundamental things change... for example, I  just discovered that the code works in c++20 in windows, but with /permissive flag, otherwise it gives crazy LNK2019 linking errors. I believe some ABI has changed after c++17, but it was hard to understand and fix the error.</div><div><br></div><div>So, best regards and I hope this information is useful!</div><div>Igor<br></div><div><br></div></div>