Intel® C++ Compiler

braced-init-list in ranged for loop is not supported (C++11)?

Hi, according C++11 specification (in my case I refer to draft n3376) the following 'for' construction is valid:

#include <iostream>
int main(void) {
    for (auto x : { 0, 1, 2 }){
        std::cout << x;

But trying to compile it with intel c++ compiler gives me error:

main.cpp(3): error : assertion failed at: "shared/cfe/edgcpfe/il.c", line 15066

I have installed the following compiler: Intel® C++ Composer XE 2013 SP1 Update 2 Integration for Microsoft* Visual Studio* 2013, Version 14.0.1290.12

Intel Parallel Studio 2011, Intel C++ Compiler v12 on VS2013



This is a rather odd question, I am currently writing a indy game, many moons ago I forked out the cash to buy the Intel Parallel Studio suite, at the time I was working in the HPC sector, and today not so much, so I let my subscription lapse.

Unfortunatly due to the how boring my job is I decided to make an indy game, and I've update my tool-chain accordingly at least in terms for windows (ie: Visual Studio 2013 pro). Unfortunatly I do not have the money to take repurchase Parallel Studio as its out of my price range now.

[OMP Target] Difference in mapping of global arrays (malloc vs static)

There are 2 ways to have a global array: Use a pointer and malloc, or just define it as an array:

#omp declare target
int gArray[10];
int* gVals /*somewhere later:*/ = malloc(10*sizeof(int));
#omp end declare target

I though, these where equivalent in handling but just discovered a huge difference: When I map them to a target, only the gVals will be actually mapped. If I want the values of gArray on my device I have to use "target update". Is this a bug in the current icc or is this covered in the spec? I could not find anything specific to this.

Compiling qhull

Dear all,

I'm trying to compiler qhull I edited the makefile

by specifying CC = icc and CXX = icpc, I've thought it was enough.

However the compilation fails. There are an additional options for CC/CXX

CC_OPTS1  = -O2 -fPIC -ansi -Isrc/libqhull $(CC_WARNINGS)
CXX_OPTS1 = -O2 -Dqh_QHpointer -Isrc/ -Isrc/libqhullcpp -Isrc/libqhull $(CXX_WARNINGS)

the warning switches are

A member with in-class initializer must be const. What?

I have explicitly enabled C++0x support in my project (latest C++ composer version) and I'm getting the above error. What is going on? The code I'm using is

static bimap<string, Type> typeNames = createTypeNames();

It doesn't seem like this works, and neither does inline initialization (i.e., typeNames = { { "Foo", Type::abc }}).

Some projects can't compile when using C++ Composer XE 2015 beta


Tried the newest Intel C++ Composer XE 2015 Pre-Release beta. (2015.0.0.30)

I can successfully compile most projects without issue.

but I got an error on some projects:

3>xilink: : error #10037: could not find 'llvm_com'

3>xilink: : error #10014: problem during multi-file optimization compilation (code -1)

3>xilink: : error #10014: problem during multi-file optimization compilation (code -1)

Did I miss something?

My IDE is VS2013


Mapping between instrinsics and assembly code


I'm using unaligned and aligned load intrinsics in my code and ICC does not behave as I expect it to.  If this is expected behavior, can somebody educate me on why?

The fundamental problem is I expect aligned load intrinsics to generate aligned instructions while unaligned intrinsics generate unaligned instructions However, what I see is that depending on compiler flags sometimes aligned load intrinsics generate unaligned instructions. 

OpenMP 4.0 target directives

I tried to get an OpenMP 4.0 test case to run where the code calls a user library that is compiled for host and mic (-mmic)

The host library is in current directory (pwd), the MIC lib is in pwd/mic and I set LD_LIBRARY_PATH to pwd and MIC_LD_LIBRARY_PATH to pwd/mic

However the execution fails with "On the sink, dlopen() returned NULL. The result of dlerror() is "/tmp/coi_procs/1/31669/load_lib/iccoutysEa1j: undefined symbol: foo"

Code look like this:

Iscriversi a Intel® C++ Compiler