auto-Veränderungen der Bedeutung in C++11; entfernen Sie es bitte, was bedeutet das?

Ich bin mit meinem untenstehenden code, welcher prüft, ob data_timestamp ist mehr als zwei Wochen alt sind oder nicht. Wenn es zwei Wochen alt ist, dann print hello ansonsten Drucke Welt.

Ich bin ein Java-Entwickler, die vor kurzem angefangen mit C++. Gelernt, einige Dinge über das internet, so bin ich hier in diesem Programm.

#include <ctime>
#include <chrono>
#include <iostream>

int main()
{
    //this has to be uint64_t bcoz of old code
    uint64_t data_timestamp = 1406066507000; 

    const auto now = std::chrono::system_clock::now();
    auto twoWeeks = std::chrono::hours(24 * 14);
    auto lastTwoWeeks = now - twoWeeks;

    auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(lastTwoWeeks.time_since_epoch()).count();

    std::cout << "Time stamp in milliseconds since UNIX epoch start: "<< millis << std::endl;

    if (data_timestamp < millis) { 
        std::cout << "Hello"; 
    } else { 
        std::cout << "World"; 
    }

    return 0;
}

Ich, wird dieser code ausgeführt, auf Ubuntu 12.04. Wenn ich kompilieren, während der Ausführung make install ist es mir dieser Ausnahme -

warning: âautoâ changes meaning in C++11; please remove it [-Wc++0x-compat]
error: ânowâ does not name a type
warning: âautoâ changes meaning in C++11; please remove it [-Wc++0x-compat]
âtwoWeeksâ does not name a type
warning: âautoâ changes meaning in C++11; please remove it [-Wc++0x-compat]
error: âlastTwoWeeksâ does not name a type
warning: âautoâ changes meaning in C++11; please remove it [-Wc++0x-compat]
error: âmillisâ does not name a type
error: âmillisâ was not declared in this scope

Kann sein, dass ich mich nicht mit C++11. Dies ist ein einfaches Programm, das ich gemacht, aber die Kern-Logik dieses Programm, das ich verwende es in einer großen C++ - Projekt so wie es aussieht, kann ich nicht port alles zu C++11 um diese Arbeit zu machen. Gibt es irgendeinen anderen Weg, mit dem ich schreiben kann, dieser code, welche nicht mit C++11?

Update:-

Dies ist der Weg, ich bin immer aktuellen Zeitstempel in Millisekunden an diesem großen Projekt an einem Teil der code -

struct timeval tp;
gettimeofday(&tp, NULL);
uint64_t current_ms = tp.tv_sec * 1000 + tp.tv_usec / 1000; //get current timestamp in milliseconds

InformationsquelleAutor john | 2014-08-06

Schreibe einen Kommentar