While technically speaking designated constructors are a C++20 only feature, apparently just requiring C++17 is sufficient on Linux/macOS, while we need to require C++20 on MSVC. As some downstream users prefer that we do not explicitly force C++20 (see https://github.com/ami-iit/meshcat-cpp/issues/7) and for us I guess it does not change much, I think we can only require C++20 on Windows.
While technically speaking designated constructors are a C++20 only feature, apparently just requiring C++17 is sufficient on Linux/macOS, while we need to require C++20 on MSVC. As some downstream users prefer that we do not explicitly force C++20 (see https://github.com/ami-iit/meshcat-cpp/issues/7) and for us I guess it does not change much, I think we can only require C++20 on Windows.