Affects OS X and some older Linux distributions
Error message is seen when compiling C++11 C++ applications using std::function.
Root cause: stdlib headers and libraries used by ICPC come from the system supplied gnu gcc/g++ by default. Thus the system g++ must be fairly modern and support std::function. Older gcc versions such as those found on OS X and some older Linux distributions do not have full support for all new C++11 std:: namespace functions. You will see an error such as this:
$ icpc -std=c++11 test.cpp
test.cpp(19): error: namespace "std" has no member "function"
Workaround:
OS X: The ICPC compiler option -stdlib=libc++ can be used to force icpc to use the CLANG supplied stdlib headers and libraries instead of the GNU stdlib headers and libraries:
icpc -std=c++11 -stdlib=libc++ test.cpp
Linux: If you can, update your gcc/g++ installation to get the latest C++11 feature support.
There is a bug report to get the default OS X behavior to be -stdlib=libc++ so that the option does not need to be explicitly added.