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

icc -mmic - c+11 support

Jamil_A_
Beginner
738 Views

 

   Hi 

      What is the level of support for c++ when using icc -mmic?

      This code 

   #include <memory>
#include <iostream>
int main()
{
  typedef std::pointer_traits<std::shared_ptr<int> >::rebind<double> another_pointer;
  std::shared_ptr<int> a;
  return 1;
}

Compiles the the host when using icpc -std=c++11  c11.cxx but fails with

icpc -mmic -std=c++11  c11.cxx
c11.cxx(6): error: qualified name is not allowed
    typedef std::pointer_traits<std::shared_ptr<int> >::rebind<double> another_pointer;
            ^

c11.cxx(6): error: expected a ";"
    typedef std::pointer_traits<std::shared_ptr<int> >::rebind<double> another_pointer;
                               ^

compilation aborted for c11.cxx (code 2)

gcc --version
gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

icpc --version
icpc (ICC) 16.0.0 20150326
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

OS RHEL 6.4

Thanks

 Jamil

 

0 Kudos
2 Replies
Amanda_S_Intel
Employee
738 Views

C++11 support depends on the GCC version available on the system. When using -mmic, support depends on the GCC version installed as part of MPSS. See footnote #5 in this article for details: https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler

0 Kudos
Jamil_A_
Beginner
738 Views

 

 Hi Amanda

  I assume then that c++11 is not fully supported on MIC code as it is based on gcc 4.7.  

  Given that one of the icc 16.0 beta test objectives is c++ 11 support are there any plans to update the MIC gcc version to provide full c++ 11 support during the beta test period?

 Thanks

 Jamil

0 Kudos
Reply