c + + chrono duration_cast para milissegundos resulta em segundos

Eu quero ter o número de milissegundos desde a época. Uma solução popular se parece com a seguinte (uma das soluções desta pergunta aquiObtenha tempo desde a época em milissegundos, de preferência usando o C + + 11 crono )

#include <iostream>
#include <chrono>

int main() {
    auto millitime = std::chrono::duration_cast<std::chrono::milliseconds>
        (std::chrono::system_clock::now().time_since_epoch()).count();
    std::cout << millitime << std::endl;
    return 0;
}

compilando isso com uma chamada parag++ gostarg++ -std=c++11 main.cpp -o timetest resulta na saída

1372686001

que é igual ao número desegundos desde a época!

Isso é um bug no glibc? em g + +? meu erro?

g++ (Debian 4.7.3-4) 4.7.3
ldd (Debian EGLIBC 2.17-6) 2.17

Atualizar: funciona quando se usa o g ++ 4.8. Então é um bug do gcc ?!

g++-4.8 (Debian 4.8.1-2) 4.8.1

questionAnswers(1)

yourAnswerToTheQuestion