support all of C++11 in Cactus or the Einstein Toolkit

Issue #2207 new
Roland Haas created an issue

We are currently allowing a subset of C++11 to be used in Cactus and the Einstein Toolkit. Looking at configure.in the supported features are:

  • the auto specifier
  • C++ lambdas
  • C++ range based for

To support all interesting features one would need at least icpc 15 as well as g++ 4.8 and clang 3.3.

== Compiler support ==

The major compilers provide the following information on the features they support:

This summarizes the specific C++11 language features.

|| ||= Description =||= GCC version =||= Intel version =||= Clang version =||= Notes =|| ||= N2672 =|| initializer lists || 4.4 || 14.0 || 3.1 || Wikipedia: (1) (2) || ||= N2242 \ N2552 =|| variadic templates || 4.3 \ 4.4 || 12.1 || 2.9 || Wikipedia: (1) || ||= N1737 \ N1984 =|| ''auto'' type || 4.4 || 12.0 || 2.9 || Wikipedia: (1) || ||= N2930 =|| range-based for loops || 4.6 || 13.0 || 3.0 || Wikipedia: (1) || ||= N2431 =|| ''nullptr'' constant || 4.6 || 12.1 || 3.0 || Wikipedia: (1) || ||= N2927 =|| lambda functions || 4.5 || 12.0 || 3.1 || Wikipedia: (1) || ||= N3052 =|| lambda function conversions || ? || 13.0 || ? || || ||= N2761 =|| standardized attributes || 4.8 || 12.1 || 3.3 || Wikipedia: (1) || ||= N1986 =|| delegating constructors || 4.7 || 14.0 || 3.0 || Wikipedia: (1) || ||= N2118 =|| rvalue references || 4.3 || 12.0 || 2.9 || Wikipedia: (1) || ||= N2346 =|| defaulted and deleted methods || 4.4 || 12.0 || 2.9, 3.0 || Wikipedia: (1) || ||= N2442 =|| raw string literals || 4.5 || 14.0 || 3.0 || Stackoverflow: (1) || ||= N2235 =|| generalized constant expressions || 4.6 || 14.0 || 3.1 || Wikipedia: (1) || ||= N2343 \ N3276 =|| declared type of an expression || 4.3 \ 4.8.1 || 12.0 || 2.9 \ 3.1 || Wikipedia: (1) || ||= N2437 =|| explicit conversion operators || 4.5 || 13.0 || 3.0 || Stroustrup 4th edition, 18.4.2 || ||= N1757 =|| right angle brackets || 4.3 || 11.1 || 2.9 || ''>>'' for template arguments || ||= N3272 =|| override and final || 4.7 || 14.0 || 3.0 || Wikipedia: (1) || ||= N2258 =|| template aliases || 4.7 || 12.1 || 3.0 || Wikipedia: (1) || ||= N3053 =|| move special member functions || 4.6 || 14.0 || 3.0 || || ||= N2659 =|| thread-local storage || 4.8 || 15.0 || 3.3 || || ||= N2341 =|| Alignment support || 4.8 || 15.0 || 3.3 || || ||= N2756 =|| Non-static data member initializers || 4.7 || 14.0 || 3.0 || || ||= N2347 || Strongly-typed enums || 4.4 || 14.0 || 2.9 || ||

This summarizes the specific C++11 library features.

||= Description =||= libstdc++ version =||= libc++ version =||= Notes =|| || ''std::begin'', ''std::end'' || 4.5 || * || || || smart pointers || <4.5 || * || Wikipedia: (1) \ Conversion between smart pointers to convertible types is not supported until libstdc++-4.6.1 || || ''std:🗺:emplace'' || 4.8 || || || || ''std::vector::emplace'' || <4.5 || * || || || ''<regex>'' || 4.9 || || cplusplus.com: (1) || || ''<type_traits>'' || <4.5 || || cplusplus.com: (1) || || ''<chrono>'' || 4.4 || || Stroustrup 4th edition || || ''<atomic>'' || 4.5 || || cplusplus.com: (1) \ std::atomic::exchange does not compile for pointer types with Intel 13 (works with Intel 14) || || ''std::array'' || <4.6 || || || || ''std::to_string'' || || || || || ''std::unordered_map'' || || || || || || ''std::function'' || <=4.6 || || || * First version unknown; libc++ claims full support for all C++11 features.\ See the libstdc++-4.6.4 documentation (under 20.9.4.3) for a list of unsupported traits.

Keyword: None

Comments (2)

  1. Roland Haas reporter
    • removed comment

    I had a look at the (non-personal machines) in simfactory2.

    === unknown status === * angel.ini * compute1.ini * compute20.ini * compute2.ini * compute3.ini * compute4.ini * compute5.ini * compute.ini * nvidia1.ini * nvidia.ini * pi0005009.ini * titan.ini

    • vesta.ini # uses the IBM compiler (a Blue Gene/Q)

    === likely turned off ==== * philip.ini * shelob.ini * s-kraken.ini

    === too old if on === * saw.ini * tianhe1a.ini # cannot be accessed other than through a VPN

    === known too old === * mike.ini * qb.ini * requin.ini # cluser is up and running: http://ganglia.sharcnet.ca/?c=requin&m=load_one&r=hour&s=descending&hc=4&mc=2 * sciama.ini # cluster is up http://www.sciama.icg.port.ac.uk/coremap2.htm

  2. Roland Haas reporter
    • removed comment

    saw, s-kraken and requin are very old. Last year, a set of new machines was made available to researcher. I have retired them based on suggestions by Erik.

    The new machines are Cedar, Graham, and Niagara.

  3. Log in to comment