Intel® C++ Compiler

cmake does not find std::nullptr_t

I'm trying to build a library with the Intel compiler using cmake. This library makes use of the std::nullptr_t introduced with C++11. So the cmake scripts check for '-std=c++11' which is present in the Intel 15 compiler.

However the std::nullptr_t is not supported by the system gcc (4.3.x) resulting in the following error message: "Your compiler supports the 'nullptr' keyword, but not the type std::nullptr_t.You are using an Intel compiler, where this error is typically caused by an outdated underlying system GCC."

What is "gcc compatibility mode" and how to disable it?


I am - so far - quite unsuccessful in using icpc 2016 while making boost 1.59.0. I did manage to compile a helloworld program BTW.

I am using Linux Mint 17.3

My question is: icpc shows

 ~ $ icpc -v
icpc version 16.0.0 (gcc version 3.2.0 compatibility)

What does the "compatibility mode" mean? It seems that when building bjam in order to install boost 1.59.0 I get errors because "gcc is too old" as they say over in the boost mailinglist. As a matter of fact, my gcc / g++ are version 4.8.4!

Out-of-memory error when compiling a huge project for 32-bit Windows target for profile guided opts

I have a huge project, that needs lots of optimizations, so I use profile guided stuff, which doesn't really improve performance, but smallers the executables quite a bit (from 50MB to 35MB or so). First it takes a hell of a lot of time to build the executables for generting the profile guided database (or how is it called), but my main problem is that 64-bit version works fine, but 32-bit version evetually (after hours of processing...) ends with out-of-memory error (I have enough memory).

Alignment of returned address from malloc()

Hi, guys,

I am using icc 15.0.2 which is compatible to gcc 4.4.7. Whenever I allocate a memory space with malloc function, the address is aligned by 16 bytes. I know gcc's malloc provides the alignment for 64-bit processors. Does the icc malloc function support the same alignment of address? I think it is related to the quality of vectorization and I definitely need to make sure the malloc function of icc also supports the alignment. 

Friend declaration for sibling inner class causes warning

The following code causes a bogus warning:

 ~ > cat /tmp/main.cpp
template <typename T>
class Parent {
  class A {};
  class B {
    friend class Parent<T>::A;
 ~ > icc -c /tmp/main.cpp
/tmp/main.cpp(5): warning #135: class template "Parent<T>" has no member "A"
      friend class Parent<T>::A;

However it's perfectly legal C++ (AFAICT), and there are no warnings under either GCC 4.8.5 or Clang 3.7.0.

Internal error: assertion failed at: "shared/cfe/edgcpfe/lower_name.c", line 9613

Compiling the attached source yields an internal error in shared/cfe/edgcpfe/lower_name.c. This issue is not limited to compilation of pre-processed sources, I've only attached a pre-processed source to make it easier for you to reproduce. If you prefer reproducing this with normal C++ sources I can give you instructions to reproduce by compiling a patched Fruit ( library.

Can simd and omp parallel for work together for a loop?

I have a loop, can ivdep, simd and omp parallel for work together for the loop like

#pragma ivdep
#pragma simd
#pragma omp parallel for
for(int i = 0; i < n; ++i)
    ... // code without data dependencies between iterations

or the compiler might just choose simd or omp parallel?

S’abonner à Intel® C++ Compiler