StructLayout icon indicating copy to clipboard operation
StructLayout copied to clipboard

support MSVC toolset option for side-by-side toolset installations

Open slymz opened this issue 2 years ago • 1 comments

Struct Layout compilation uses incorrect version of MSVC++ toolchain when the system has multiple VS installations, and/or multiple toolchain installed side-by-side on a single VS instance, and a given project is configured to select a specific version.

Here is the project configuration snapshot where this setting is made:

image

To reproduce, install a secondary (older) version of C++ toolchain using the VS Installer (locate one under individual component install). Configure a sample project to use this older version. Struct Layout will insist on using the latest version available, instead of the one specified by the project.

On non-trivial codes, this causes compiler errors because the code may not be compatible with the new toolchain versions (hence the official support for such per-project selection and side-by-side paradigm by VS). To reproduce this scenario artificially, add the following preprocessor condition in code:

For example,

#if _MSC_VER > 1927
#error "unsupported compiler
#endif

where 19.27 corresponds to v14.27 of the MSVC toolchain:

image

slymz avatar Nov 04 '21 19:11 slymz

Thanks for reporting this. The Struct Layout parser is using Clang underneath, but I will have a look to see if I can at least propagate the proper version definitions.

Hopefully I will have time to have a look soon.

Viladoman avatar Nov 09 '21 18:11 Viladoman