2012-04-29 10 views
6

El siguiente código muestra un error de compilación con g ++ - 4.7.0 pero compila bien con g ++ - 4.6.boost :: date_time, g ++ - 4.7.0, error de compilación

#include <iostream> 
#include <boost/date_time/local_time/local_time.hpp> 
using namespace std; 
int main(){ 
    boost::posix_time::ptime time_t_epoch(boost::gregorian::date(1970,1,1)); 
    cout << time_t_epoch << endl; 
    return 0; 
} 

El siguiente es el mensaje de error que se ve repetidamente (compilador emite una gran cantidad de mensajes)

/usr/include/boost/date_time/local_time/local_date_time.hpp:433:84: error: use of deleted function boost::shared_ptr<boost::date_time::time_zone_base<boost::posix_time::ptime, char> >::shared_ptr(const boost::shared_ptr<boost::date_time::time_zone_base<boost::posix_time::ptime, char> >&) 

estoy usando Ubuntu 12.04 y libboost-date-time1.46.1.

¿Alguna sugerencia?

+0

¿Está utilizando la misma versión de boost en ambos casos? – juanchopanza

+0

Sí. No veo ninguna otra versión de las bibliotecas de impulso instaladas en mi máquina. Por cierto, es un error de compilación ¿verdad? entonces, ¿la versión de la biblioteca importa aquí? – suresh

+0

Es un error de compilación. No puedo reproducirlo, pero mi impulso no es construir con C++ 11. Parece que el tuyo es (la eliminación del constructor es C++ 11), así que supongo que el refuerzo se construye de forma diferente en el último ubuntu. ¿Lo construiste tú mismo, o usas 'get-apt install'? – juanchopanza

Respuesta

6

El problema se solucionó instalando boost-1.48

+2

me alegra oír eso, ahora sé por cuándo me actualizo. Se le permite aceptar su propia respuesta (pero no obtiene ningún punto de representante :-)) – juanchopanza

+0

igual para mí, pero estaba usando MacOS y gcc47 (a través de MacPorts). Actualizado desde el impulso 1.44 a 1.51. – chahuistle

Cuestiones relacionadas