This page tracks the workarounds for the various compiler issues that we encountered in the development. This is mostly of interest for developers interested in contributing to xtensor.
Visual Studio and internal classes¶
xproperty properties are internal classes that implement a CRTP pattern. Unlike most CRTP patterns implemented in QuantStack projects, the internal
typedef to the derived class is not called
xp_derived_type. The reason for this, is that the way MSVC resolves typedefs of internal classes is bugged: if the owner itself has a
derived_type typedef, its value is going to be used instead.
In other words, the outer class typedefs mask the inner class typedefs.