std :: function <> и компилятор Intel версии 11.1

У меня проблемы с работой с лямбда-функциями в компиляторе Intel, в частности, следующий код не компилируется:

template<typename T>
std::function<T (int)>  make_func(T x) {
  return [=](int index) -> T
  {
     return x;
  };
}

Я получаю сообщение об ошибке

error: namespace "std" has no member "function"

. Код компилируется и отлично работает на моем Mac (macports gcc версии 4.5). Ошибка в работе, где мы используем компилятор Intel версии 11.1. Он принимает лямбда-функции (с параметром -std = c ++ 0x), например:

auto lam = [=](int j) -> int {
    printf("testing for lambdas: %d\t%d\n", n, j);
    return n;
};

int g = lam(7);

Версия gcc, установленная на работе, - 4.1.2, поэтому я предполагаю, что стандартная библиотека устарела?

/bin/libc.so.6

говорит, что это версия 2.5, скомпилированная с gcc 4.1.2.

Есть ли способ обойти это?

заранее благодарим за любую помощь

6
задан nick maxwell 29 June 2011 в 20:47
поделиться