chrono::duration mało precyzyjne

0

Jestem chyba odrobinę zniesmaczony.
Odrobina uproszczonego kodu:

void start(){
    initialize();
    auto new_time = std::chrono::high_resolution_clock::now();
    auto old_time = new_time;
    while(!quit){
        new_time = std::chrono::high_resolution_clock::now();
        auto elapsed_time = new_time - old_time;
        old_time = new_time;
        update(elapsed_time);
        draw();     
    }
    finalize();
}
typedef std::ratio<1, 1000000000000> pico;
typedef std::chrono::duration<long long, pico> Duration;

virtual void onUpdate(Duration elapsed_time) override{
    static int counter = 0;
    cout << "chrono: " << elapsed_time.count() << "; SDL: " << SDL_GetTicks() << endl;
    if(counter++ > 10) quit = true;
}

Przykładowe wyjście

chrono: 0; SDL: 26
chrono: 0; SDL: 26
chrono: 0; SDL: 26
chrono: 0; SDL: 27
chrono: 0; SDL: 27
chrono: 0; SDL: 27
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28

Mając standard chciałbym ograniczyć użycie zbędnego kodu z zewnątrz. Czy mogę?
Czy używam chrono w zły sposób?
//EDIT:
code::blocks - Release 13.12 rev 9501 gcc 4.7.1 Windows/unicode - 32 bit
//EDIT:
ehh... nic to, zostaje mi tylko napisać providera

0

Taki doświadczony użytkownik, a zapomniał powiedzieć jakiego środowiska i kompilatora używa :>.
Visual Studio? Dopiero od wersji, która nadejdzie po VS2013 std::high_resolution_clock będzie korzystał z QueryPerformanceCounter.
https://connect.microsoft.com/VisualStudio/feedback/details/719443/
Jestem prawie pewny, że działa to już tak w Visual Studio "14" (czyli najprawdopodobniej Visual Studio 2015).
Możesz CTP pobrać tutaj: http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs

1 użytkowników online, w tym zalogowanych: 0, gości: 1