Intel® oneAPI DPC++/C++ Compiler
Talk to fellow users of Intel® oneAPI DPC++/C++ Compiler and companion tools like Intel® oneAPI DPC++ Library, Intel® DPC++ Compatibility Tool, and Intel® Distribution for GDB*
656 Discussions

oneAPI 2023.2.0: samples do not compile on Windows with VS2022 (missing include for std::iter_swap)

miwechner
Beginner
2,950 Views

Hello,

 

i was trying to test out the DPC++ compiler but it failed to compile any code due to an error in the headers, here for example the Simple_Add sample:

 

  [1/8] Building CXX object src\CMakeFiles\simple-add-buffers.dir\simple-add-buffers.cpp.obj
  FAILED: src/CMakeFiles/simple-add-buffers.dir/simple-add-buffers.cpp.obj 
  C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin\icx-cl.exe   -fsycl -Wall /EHsc -o src\CMakeFiles\simple-add-buffers.dir\simple-add-buffers.cpp.obj -c C:\Users\Michael\source\repos\Simple_Add\src\simple-add-buffers.cpp
  Intel(R) oneAPI DPC++/C++ Compiler for applications running on Intel(R) 64, Version 2023.2.0 Build 20230627
  Copyright (C) 1985-2023 Intel Corporation. All rights reserved.
  
C:\Users\Michael\source\repos\Simple_Add\out\build\x64-Debug\icx-cl : warning : argument unused during compilation: '/MP' [-Wunused-command-line-argument]
C:\Users\Michael\source\repos\Simple_Add\out\build\x64-Debug\icx-cl : warning : argument unused during compilation: '-MP' [-Wunused-command-line-argument]
  In file included from C:\Users\Michael\source\repos\Simple_Add\src\simple-add-buffers.cpp:22:
  In file included from C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin-llvm\..\include\sycl/sycl.hpp:11:
  In file included from C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin-llvm\..\include\sycl/accessor.hpp:26:
  In file included from C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin-llvm\..\include\sycl/buffer.hpp:17:
  In file included from C:\PROGRA~2\Intel\oneAPI\compiler\latest\windows\bin-llvm\..\include\sycl/ext/oneapi/accessor_property_list.hpp:26:
C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\include\sycl\detail\property_list_base.hpp(125,12): error : no member named 'iter_swap' in namespace 'std'
        std::iter_swap(It, MPropsWithData.end() - 1);
        ~~~~~^
  1 error generated.

...

 

 

Following the error message, it is simple to resolve the issue locally in affected header "sycl/detail/property_list_base.hpp" by adding an #include <algorithm> statement.

 

I was wondering if this is a known issue and what i can do to solve it without modifying the installation. Is there maybe some update or patch that I am missing. I downloaded the 2023.2.1 Update afterwards, but that did not change the headers in my installation (also "icpx --version" was still 2023.2.0 in the CLI environemnt)

 

My envorinment:

- Windows 10

- Visual Studio 2022 with MSVC 19.37.32822

- oneApi Base Toolkit 2023.2.0

 

Steps i took to compile the sample :

- open Intel oneAPI command prompt for Intel 64 for Visual Studio 2022

- run "devenv" (only this way the environment variables were set correctly for cmake)

- In Visual Studio: Extensions->Intel->Browse Intel One Api Samples->Simple Add

- Cmake configure and build

 

Labels (1)
0 Kudos
1 Solution
RabiyaSK_Intel
Employee
2,831 Views

Hi,


Thanks for posting in Intel Communities.


Could you please specify your Visual Studio sub-version?


Could you also check the Visual Studio Compatibility with Intel OneAPI compilers with the following link:

https://www.intel.com/content/www/us/en/developer/articles/reference-implementation/intel-compilers-compatibility-with-microsoft-visual-studio-and-xcode.html


If you are using unsupported Visual Studio sub-version, could you please try on supported VS and let us know if the issue persists?


Thanks & Regards,

Shaik Rabiya


View solution in original post

0 Kudos
6 Replies
miwechner
Beginner
2,922 Views

I also tested it on the previous verison 2023.1.0, but i have the the same issue there.

0 Kudos
RabiyaSK_Intel
Employee
2,832 Views

Hi,


Thanks for posting in Intel Communities.


Could you please specify your Visual Studio sub-version?


Could you also check the Visual Studio Compatibility with Intel OneAPI compilers with the following link:

https://www.intel.com/content/www/us/en/developer/articles/reference-implementation/intel-compilers-compatibility-with-microsoft-visual-studio-and-xcode.html


If you are using unsupported Visual Studio sub-version, could you please try on supported VS and let us know if the issue persists?


Thanks & Regards,

Shaik Rabiya


0 Kudos
miwechner
Beginner
2,808 Views

Hello,

 

i was using Visual Studio 2022 17.7.0. I rolled back to version 17.4.1 (with MSVC 19.34.31937), which worked and compiled the samples. Looks like something in the MSVC STL changed which meant that less functions/classes were defined with the given includes.

 

Thank you for providing the compatiblity matrix -- I did not expect that a minor compiler version difference could break compilation in such a catastrophic way.

 

Thank you and best Regards

Michael

 

 

 

0 Kudos
PC-1
Beginner
2,065 Views

Hi Shaik 

May I ask when Intel oneAPI base toolkit 2023 update 3.0 will be released. I cannot roll back my visual studio currently and this issue (unsupported VS subversion) bothers me a lot. 

0 Kudos
RabiyaSK_Intel
Employee
2,793 Views

Hi,


Thanks for accepting our solution. If you need any additional information, you can raise a new question as this thread will no longer be monitored by Intel.


Thanks & Regards,

Shaik Rabiya


0 Kudos
Max_Zhang
Beginner
2,717 Views

Hi, 

 

I found we could add the following code in property_list_base.hpp to solve this issue.

#include <algorithm>

We could know that from the C++ standard. https://en.cppreference.com/w/cpp/algorithm/iter_swap 

 

Best Regards,

Max Zhang

0 Kudos
Reply