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