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

ICC and STL

pastmaster
Beginner
573 Views

I'm just evaluating icc. The produced code for my projects is not really better or worse than that of VC or GCC. However that's not my reason to check out it out. My main motivation is to get as much platform independence as possible with the least amount of tinkering around. I'm targeting windows, linux and mac os. And I'd really like to minimize taking care of differences between platforms.

That approach only goes as far as the lowest common denominator in STL of the 'host' compiler. Which is currently pretty low regarding C++11. So I'm somewhat turned off by the fact that ICC does not come with it's own implementation of the STL. So my question is: Do you see any way I can get reasonable c++11 STL support using icc on all three platforms?

In particular I'm looking for threads and Co. I have been looking for a up to date third party STL without success. Is there any?

Is there any other STL that can be used on windows besides VCs?

Apple seems to abandon gcc. The latest Xcode version still only comes with gcc 4.2. So what's the prospect for MacOS? Using the gcc from macports i.e. seems to be troublesome in terms of STL threads. Is there a way to use clangs libc++?

It would be awesome if there was an intel provided STL. It would be a strong incentive to go ICC for cross platform developers. I don't assume there are any such plans?

0 Kudos
5 Replies
TimP
Honored Contributor III
573 Views
While I can't speak for future plans, the commitment with icc and ICL always has been to support the most popular STL on the platform (Visual Studio for Windows, g++ libstdc++ for linux or Mac). Where neither of those is available, Dinkumware STL has been provided with icc. It seems very unlikely that a new version of an older compiler like icc 11 would be supported directly by Intel with a new STL not provided as part of the supported OS. icc/ICL 11 are limited to STL released by Microsoft or gnu prior to the development phase of the compiler.
If STLport satisfies your requirements, why not use that?
0 Kudos
pastmaster
Beginner
573 Views

Hello Tim.

I think I confused you with 'c++11'. I was referring to the formerly named c++0x standard, not a compiler version.

STLport is outdated and the project site is very quiet.

Dinkumware don't seem to offer their stl directly to end users. The page also looks dated. But if they have something current that would be interesting. You say you provided their stl where libstdc++ or vc std lib is not available. Is that something you currently ship? If so on what platform?

Apple stopped maintaining their libstdc++ version and is now using libc++ along with Clang. So I guess there is no useable c++0x compatible libstdc++ anytime soon. What will be the way forward on MacOS? Are you going to support libc++?

Thank you for your time.

0 Kudos
TimP
Honored Contributor III
573 Views
Dinkumware STL was provided with early versions of icc for linux (IA64 and IA32), but not for Windows, until it became clear that libstdc++ was more satisfactory for most customers (for performance and compatibility). Some of the architectures for which there is no released libstdc++ continue to be supported with dinkumware.
I've never used the current MacOS family, and have no involvement in plans going forward, but the policy has generally been that icc uses the most popular STL supported on the platform.
0 Kudos
Om_S_Intel
Employee
573 Views
You can try stlport. It is available in all platforms.

Om
0 Kudos
pastmaster
Beginner
573 Views

Again - I'm looking for c++0x support. STLport is c++ 2003. Judging from it's sites activity that will not change anytime soon.

Since there is no new information I'll assume what I did before. On windows it depends on when and what MS does. And on the Mac on wether Intel will support libc++ at some point which is unknown at time.

Due to my search it seems the only way to get decent c++0x support now is gcc on Linux, clang on MacOS and MinGW on Windows. So I guess I'll either do that or revert to boost.

0 Kudos
Reply