Usando adaptadores Boost con lambdas C ++ 11

Intenté compilar este código:

#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 creación de instancias de plantilla larga):

/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éesta en el archivo de listas de correo de Boost Users. Se sugirió que utilizando#define BOOST_RESULT_OF_USE_DECLTYPE resolvería el problema Lo puse en el principio de mi código, pero aún no se 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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta