- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using ICC 13.x, and I'm writing C++11 code.
This document
http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler ;
tries to describe which C++11 features are supported. But some of the boxes list "Partial" support. Does anyone know where I can get more details on the level of support for those features?
For example, consider initializer lists. This statement compiles fine on GCC 4.7.2:
vector<int> x = {1,2,3};
However, icc 13.1 issues a compiler error. The document mentioned above does list "General initializer lists" as having "Partial" support. But if I'm trying to compile code like the example above and I get a compiler error, I don't know whether the problem lies with (a) my code, or (b) icc's known lack of support for that feature, or (c) a problem the version of libstdc++ I have on my system, or if (d) this is a previously unknown bug with icc which I should report. If I knew the details of what "Partial" support for "General initializer lists" meant, I could avoid / sort-out issues like this faster.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For c++11 initializer lists the support that is still missing are conversions to std::initializer_list. These will be fully implemented in the upcoming release.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Judith. For that compatibility matrix listed at the top of this thread, it would be very helpful for Intel to post more-detailed information. Specifically:
- On the "Partial" support levels, what exactly does that mean?
- For the features which are dependent on the system-installed version of the C++ standard library, what level of the standard C++ library is needed in order for ICC 13.x to support that feature. For a possibly false example, ICC 13 + (GCC 4.7 or higher's libstdc++.so) is needed for std::chrono support.
The main point is that it needs to not become a major research project for us professional ICC users to determine whether or not we can use a given C++11 feature, given our requirements about the target systems.
It should be as simple as, "Okay, I'm targetting RHEL 6.4 or newer, and I've got ICC 13. EXACTLY which C++11 features can I use?"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For the first question, "partial" in reality means we did enough to successfully compile the GNU headers. So for something like constexpr it's really hard to describe what doesn't work. I could give you some examples but I'm sure it wouldn't be a complete list. I think in the future we will just document these features as unsupported. I would say for now don't use any features listed as partial.
Regarding the second question, this is a library question. We don't produce our own libraries, we just use whatever GNU library is on the system. So you should consult the GNU library documentation for answers (or ask them to document their library support).
Judy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Judith: Fair enough. Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page