У меня проблемы с работой лямбда-функций в компиляторе 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.
Есть ли способ обойти это?
заранее спасибо за любую помощь