yo tratamos de compilar este código:uso de adaptadores de Boost con C++ 11 lambdas
#include <boost/range/adaptors.hpp>
#include <boost/range/algorithm.hpp>
#include <vector>
int main() {
std::vector<int> v{
1,5,4,2,8,5,3,7,9
};
std::cout << *boost::min_element(v | boost::adaptors::transformed(
[](int i) { return -i; })) << std::endl;
return 0;
}
La compilación falló con el siguiente mensaje de error (después de una novela de instancias de molde largo):
/usr/local/include/boost/iterator/transform_iterator.hpp:84:26: error: use of deleted function ‘main()::<lambda(int)>::<lambda>()’
../main.cpp:12:5: error: a lambda closure type has a deleted default constructor
Busqué en Google el problema y encontré this en el archivo de la lista de correo de los usuarios de Boost. Sugirió que usar #define BOOST_RESULT_OF_USE_DECLTYPE
resolvería el problema. Lo puse al principio de mi código, pero todavía no compila. La longitud del mensaje de error parece ser mucho más corta, pero el mensaje de error al final es el mismo. Actualmente estoy usando Boost 1.50.
¿Cuál puede ser el problema aquí? ¿Hay alguna manera de hacer funcionar esto?
Creo que necesita 1.51. Al menos eso es lo que lo hizo funcionar para mí. – Gurgeh