Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7944 Discussions

Visual Studio 2019 16.8.2 and later breaks PSXE versions of ICL

Ron_Green
Moderator
6,426 Views

During testing of VS 2019 16.8.2 we have found that it does break the PSXE 2020 compilers and older PXSE compilers - ALL PSXE versions are affected including Intel C++ ICL 19.1.x 

This affects all versions of Intel Parallel Studio XE 2020 for the Intel C++ Compiler version 19.1.x. 

WORKAROUND:  Intel provides support for VS 2019 16.8.2 and later in the oneAPI compilers.  Please upgrade and install the Intel oneAPI Base Toolkit.  

HOW IT BREAKS

Prior projects no longer work after Microsoft updates your VS 2019 to 16.8.2 or later.

Another possible problem you may see that is the same issue:

This problem would cause any user that was compiling with the
/std:c++latest switch AND including the <utility> header
file to see compilation errors. The utility header is included by almost anybody using the STL.  You will see errors such as this:

 

icl -c -EHsc -GR  -std:c++latest -Tpcmplril0-31912.cpp
Intel(R) C++ Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.1 Beta Build 20200922_000000
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.cmplril0-31912.cpp

c:/Program files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.28.29304/include/compare(48): error: bad type "std::partial_ordering" for parameter of defaulted comparison operator (must be "reference to const X" where X is the enclosing class type)
      _NODISCARD friend constexpr bool operator==(partial_ordering, partial_ordering) noexcept = default;
                                                                                               ^
c:/Program files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.28.29304/include/compare(118): error: bad type "std::weak_ordering" for parameter of defaulted comparison operator (must be "reference to const X" where X is the enclosing class type)
      _NODISCARD friend constexpr bool operator==(weak_ordering, weak_ordering) noexcept = default;
                                                                                         ^
c:/Program files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.28.29304/include/compare(186): error: bad type "std::strong_ordering" for parameter of defaulted comparison operator (must be "reference to const X" where X is the enclosing class type)
      _NODISCARD friend constexpr bool operator==(strong_ordering, strong_ordering) noexcept = default;
                                                                                             ^

compilation aborted for cmplril0-31912.cpp (code 2)

 

Microsoft is changing headers to comply with

C++ standardization committee's
paper P2085 ("Consistent defaulted comparisons")

 

this unfortunately breaks our C++ Front End in the 19.1 compilers.

To avoid this issue, one choice is to not upgrade to VS 2019 16.8 when it is released.  Or

We have a fix in our Intel C++ Compiler in the Intel(R) oneAPI toolkits.  This is ICC version 2021.1 which is in BETA.  This compiler will be released as a product in the near future.  You will need the Intel oneAPI BETA Base Tookit AND the oneAPI HPC Toolkit which you can download HERE.  Keep in mind as of today 1 Oct 2020 this compiler is a BETA compiler.

0 Kudos
10 Replies
Przemysław_O_
Beginner
5,648 Views

Is Intel planning to update Intel C++ Composer and Professional Edition Compiler 2020 packages at all?


We have licenses for both those products, question: do we need to purchase new licenses to switch to OneAPI line?

0 Kudos
Viet_H_Intel
Moderator
5,631 Views

No, oneAPI doesn't require a license.

0 Kudos
roberto_g_2
New Contributor I
5,278 Views

Does anyone has a direct link to download Visual Studio 16.7.2, which is the latest support by Intel Parallel Studio?

I had to downgrade to VS2017 as Microsoft does not make available VS 16.7 on its website.

Thanks

-Roberto

0 Kudos
Viet_H_Intel
Moderator
5,266 Views

If you have/sign up for Visual Studio subscriptions, you would be able to download order versions.

Thanks,

0 Kudos
roberto_g_2
New Contributor I
5,262 Views

Thank you for your reply.

I already did it, and it only offers VS 15.9 (i.e. VS 2017) or VS 16.8 (i.e. VS 2019). So I had to choose the former, as I wrote

Cheers

-Roberto

0 Kudos
Viet_H_Intel
Moderator
5,257 Views

I am not sure why, but am able to see it with my account.

Viet_H_Intel_0-1609865860425.png

 

0 Kudos
roberto_g_2
New Contributor I
5,253 Views

Sorry I forgot to say that I have Visual Studio Community edition
-R

0 Kudos
Viet_H_Intel
Moderator
5,245 Views

Another solution as Ron mentioned is to use the C++ Compiler in OneApi HPC toolkit.

https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html 

roberto_g_2
New Contributor I
5,241 Views

I will consider this alternative, hoping that the generated executable code for C++ does not change going from Parallel Editions to oneAPI. I wrote a time-critical piece of code in C++.

Thank you.

-Roberto

0 Kudos
Reply