Classe gps_clock

Um relógio para a hora GPS (Sistema de Posicionamento Global).

Sintaxe

class gps_clock; // C++20

Comentários

Esse relógio faz a medição da hora desde domingo, 6 de janeiro de 1980 00:00:00 UTC.

O relógio não contabiliza segundos intercalares. Sempre que um segundo bissexto é adicionado à hora UTC, o UTC fica mais um segundo atrás da hora GPS.

A hora de GPS fica atrasada 19 segundos em relação à hora TAI porque 10 segundos foram adicionados à hora TAI em 1972 para contabilizar os segundos bissextos acumulados até aquele ponto, e mais 9 segundos bissextos foram adicionados à hora TAI entre 1970 e 1980.

Membros

Nome Descrição
from_utc Estático. Converte uma utc_time em uma gps_time.
now Estático. Retorna a hora GPS atual.
to_utc Estático. Converte uma gps_time em uma utc_time.

Não membros

Nome Descrição
from_stream Analise um gps_time do fluxo fornecido usando o formato especificado.
operator<< Gerar um gps_time para o fluxo fornecido.

Aliases de tipo de conveniência

Nome Descrição
gps_clock::duration Na implementação da Microsoft, isso é sinônimo de duration<long long, ratio<1, 10'000'000>. Representa uma duração de tempo, conforme medido em unidades de 100 nanossegundos.
gps_clock::period Na implementação da Microsoft, isso é sinônimo de ratio<1, 10'000'000>. Representa o tempo em frações de um segundo (100 nanossegundos) entre cada tique de relógio na duração.
gps_clock::rep Um sinônimo do tipo (long long) usado para representar as unidades integrais no relógio gps_clock::duration.
gps_clock::time_point Um sinônimo de time_point<gps_clock>. Usado para representar um time_point para esse relógio.

Relacionado

Nome Descrição
gps_time Um sinônimo de template <class Duration> using gps_time = time_point<gps_clock, Duration>. Usado para representar um time_point para um gps_clock. Você pode especificar o Duration. Definido em std::chrono
gps_seconds Um sinônimo para using gps_seconds = gps_time<seconds>; Uma contagem de segundos, representada por um time_point associado a um gps_clock. Definido em std::chrono

Constantes públicas

Nome Descrição
gps_clock::is_steady constante Indica se o tipo de relógio é estável. Seu valor é false.

Requisitos

Cabeçalho: <chrono> (desde C++20)

Namespace: std::chrono

Opção do compilador: /std:c++latest

from_utc

Método estático que converte um utc_time em um gps_time.

template<class Duration>
static gps_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;

Parâmetros

t
O utc_time a ser convertido.

Valor retornado

A gps_time para o mesmo ponto no tempo que o utc_time t. É computado como gps_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 315964809s onde 315964809s == sys_days{1980y/January/Sunday[1]} - sys_days{1970y/January/1} + 9s. Que é o número de segundos entre a época utc_clock e a época gps_clock.

to_utc

Método estático que converte um gps_time em um utc_time.

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const gps_time<Duration>& t) noexcept;

Parâmetros

t
O gps_time a ser convertido.

Valor de retorno

Um conjunto utc_time para o mesmo ponto no tempo que o gps_time. É computado como gps_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} + 315964809s onde 315964809s == sys_days{1980y/January/Sunday[1]} - sys_days{1970y/January/1} + 9s. Esse é o número de segundos entre as épocas do utc_clock e do gps_clock.

is_steady

Valor estático que especifica se o tipo de relógio é estável. Na implementação da Microsoft, is_steady_constant é sempre false. Como o gps_clock não é estável, não é possível usar esse relógio de maneira confiável para mediar o tempo antes de um evento, o tempo após um evento e subtraí-los para obter a duração do evento porque o relógio pode ser ajustado durante esse tempo.

static const bool is_steady = system_clock::is_steady; // system_clock::is_steady equals false

now

Método estático que retorna a hora GPS atual.

static time_point now() noexcept;

Valor de retorno

Um objeto time_point que representa a hora atual. O ponto de tempo retornado é efetivamente from_utc(utc_clock::now()).

Confira também

<chrono>
file_clock class
high_resolution_clock
Structlocal_t
Structsteady_clock
Structsystem_clock
tai_clock classe
Referência de Arquivos de Cabeçalho