2013-05-13 9 views
6

Sto avendo difficoltà compilazione con crono, ecco il codice:Problemi con std :: crono

Time.hh

#include  <chrono> 

class   Time 
{ 
protected: 
    std::chrono::steady_clock::time_point _start_t; 
    std::chrono::steady_clock::time_point _now; 
    std::chrono::steady_clock::time_point _time; 
public: 
    Time(); 
    Time(const Time &other); 
    Time   &operator=(const Time &other); 
    ~Time(); 
public: 
    void   start(); 
    double  getDurSec(); 
    double  getDurMilSec(); 
private: 
    void   setNow(); 
}; 

errore di compilazione:

g++ -W -Wall -Wextra -I./include -std=c++0x -c -o src/Time/Time.o src/Time/Time.cpp 
In file included from src/Time/Time.cpp:11:0: 
./include/Time/Time.hh:21:3: error: ‘steady_clock’ in namespace ‘std::chrono’ does not  name a type 
./include/Time/Time.hh:22:3: error: ‘steady_clock’ in namespace ‘std::chrono’ does not name a type 
./include/Time/Time.hh:23:3: error: ‘steady_clock’ in namespace ‘std::chrono’ does not name a type 
src/Time/Time.cpp: In member function ‘void Time::start()’: 
src/Time/Time.cpp:34:2: error: ‘_time’ was not declared in this scope 
src/Time/Time.cpp:34:23: error: ‘std::chrono::steady_clock’ has not been declared 

Etc ...

Dimmi se hai bisogno di maggiori informazioni.

+0

Probabilmente non vi aiuterà, ma non si deve utilizzare il piombo di sottolineatura quando si nominano le variabili ('_start_t',' _now' ...) – Arthur

+2

@jules [Essi non sono in uno spazio dei nomi globale, in modo che siano ok.] (http://stackoverflow.com/a/228797/1171191) – BoBTFish

+2

Quale versione di g ++ stai usando, su quale sistema operativo? – Jehan

risposta

10

Probabilmente stai usando una versione g ++ precedente alla 4.7.0 dove non è stato implementato std::chrono::steady_clock. Se questo è il caso, hai due soluzioni:

  • Aggiorna il tuo g ++ a 4.7.0 o una versione più recente.
  • Utilizzare invece il vecchio std::chrono::monotonic_clock.
+0

[12:09] camill_a @/home/camill_a [4] $ g ++ -v [...] gcc versione 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) –

+0

È g ++ 4.7 largamente usato versione? È stabile? Attualmente lo sto installando in questo modo http://askubuntu.com/questions/168947/how-to-upgrade-g-to-4-7-1 –

+0

E un ultimo commento, quali sono le differenze tra monotono e costante ? –