Regression with MSVC 19.16 and later in C++17 mode
## Submitted by Christoph Hertzberg @chhtz
Assigned to **Nobody**
**[Link to original bugzilla bug (#1765)](https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1765)**
**Version**: 3.3 (current stable)
**Operating system**: Windows
## Description
Reported via mail:
> In some of our code using Eigen, we got a 50% increase in runtime
> when updating from C++14 to C++17.
> We are using Eigen 3.3.7 and MSVC 19.23.
>
> Below is a small example, which gives different assembly on Godbolt.org,
> when compiled with
> * MSVC 19.22 /std:c++14 /O2 /Ob2 /GS-
> * MSVC 19.22 /std:c++17 /O2 /Ob2 /GS-
>
> It seems that with C++17, the constructor call is not optimized so the
> runtime is much larger. Do you know what is going on?
>
> #include <Eigen/Core>
> int main()
> {
> for (size_t i = 0; i < 0.3e9; ++i)
> {
> Eigen::Matrix2cd R;
> }
> return 0;
> }
I confirm this, even with /DNDEBUG, but it seems to be a regression from MSVC 19.15 to 19.16 (the constructor of std::complex does not get optimized away):
https://godbolt.org/z/7WDacA
Possible workaround: Add more force-inlines at some places.
### Blocking
#1608
issue