2012-04-29 22 views
6

Poniższy kod daje błąd kompilacji z g ++ - 4.7.0 ale kompiluje dobrze z g ++ - 4.6.doładowanie :: data_time, g ++ - 4.7.0, błąd kompilacji

#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; 
} 

Poniżej znajduje się komunikat o błędzie, który jest wielokrotnie widziany (kompilator generuje dużo wiadomości)

/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> >&) 

używam Ubuntu 12.04 i libboost-Date-time1.46.1.

Wszelkie sugestie?

+0

Czy używasz tej samej wersji boost w obu przypadkach? – juanchopanza

+0

Tak. Nie widzę żadnej innej wersji bibliotek boost zainstalowanych na moim komputerze. Btw, jest to błąd kompilacji, prawda? więc czy tutaj ma znaczenie wersja biblioteki? – suresh

+0

To jest błąd kompilacji. Nie mogę tego odtworzyć, ale moje zwiększenie nie jest budowane za pomocą C++ 11. Wygląda na to, że twoja jest (usunięcie konstruktora to C++ 11), więc domyślam się, że doładowanie jest budowane inaczej na najnowszym ubuntu. Czy zbudowałeś to sam, czy użyłeś 'get-apt install'? – juanchopanza

Odpowiedz

6

Problem został rozwiązany przez zainstalowanie boost-1.48

+2

dobrze to słyszeć, teraz wiem, kiedy uaktualniam. Możesz zaakceptować własną odpowiedź (ale nie dostaniesz żadnych punktów rep) :-)) – juanchopanza

+0

samo dla mnie, ale używałem MacOS i gcc47 (przez MacPorts). Zaktualizowano od zwiększenia 1,44 do 1,51. – chahuistle