Espacios de nombres
Variantes

std::common_type(std::chrono::duration)

De cppreference.com
 
 
Biblioteca de servicios
Apoyo del lenguaje
Apoyo de tipos (tipos básicos, RTTI)
Macros de prueba de característica de la biblioteca (C++20)
Servicios de programa
Funciones variádicas
Apoyo de corrutinas (C++20)
Apoyo de contratos (C++26)
Comparación de tres vías (C++20)
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

 
 
 
Definido en el archivo de encabezado <chrono>
template <class Rep1, class Period1, class Rep2, class Period2>
struct common_type<std::chrono::duration<Rep1, Period1>,
                   std::chrono::duration<Rep2, Period2>> {
    typedef std::chrono::duration<
        typename std::common_type<Rep1, Rep2>::type, /*véase Notas*/> type;
};
(desde C++11)

Expone el tipo llamado type, que es el tipo común de dos std::chrono::durations, cuyo período es el máximo común divisor de Period1 y Period2.

Notas

El período de la duración resultante se puede calcular formando una razón del máximo común divisor de Period1::num y Period2::num y el mínimo común múltiplo de Period1::den y Period2::den.

Ejemplo

#include <type_traits>
#include <iostream>
#include <chrono>

// std::chrono ya encuentra el máximo común divisor,
// probablemente usando std::common_type<>. Hacemos
// la deducción de tipo externamente. 

template <typename T,typename S>
constexpr auto durationDiff(const T& t, const S& s)
    -> typename std::common_type<T,S>::type
{
    typedef typename std::common_type<T,S>::type Common;
    return Common(t) - Common(s);
}


int main() 
{
    using namespace std::literals;

    constexpr auto ms = 30ms;
    constexpr auto us = 1100us;
    constexpr auto diff = durationDiff(ms, us);

    std::cout << ms.count() << "ms - " << us.count() << "μs = " << diff.count()
              << (std::is_same<decltype(diff), decltype(ms)>() ? "ms" : "μs")
              << '\n';
}

Salida:

30ms - 1100μs = 28900μs

Véase también

Especializa el rasgo std::common_type.
(especialización de plantilla de clase) [editar]
Deduce el tipo del resultado de una expresión aritmética mixta
(plantilla de clase) [editar]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.