std::greater<void>
De cppreference.com
< cpp | utility | functional
Definido en el archivo de encabezado <functional>
|
||
template<> class greater<void>; |
(desde C++14) | |
std::greater<void> es una especialización de std::greater con el tipo de parámetro y el tipo de retorno deducidos.
Contenido |
[editar] Tipos anidados
Tipo anidado | Definición |
is_transparent
|
No especificado. |
[editar] Funciones miembro
operator() |
Prueba si lhs se compara mayor que rhs. (función miembro pública) |
std::greater<void>::operator()
template< class T, class U > constexpr auto operator()( T&& lhs, U&& rhs ) const |
||
Devuelve el resultado de std::forward<T>(lhs) > std::forward<U>(rhs).
Parámetros
lhs, rhs | - | Los valores a comparar. |
Valor de retorno
std::forward<T>(lhs) > std::forward<U>(rhs).
Si se llama a un operador integrado que compara punteros, el resultado es consistente con el orden total estricto sobre punteros.
[editar] Excepciones
Puede lanzar excepciones definidas por la implementación.
[editar] Ejemplo
Ejecuta este código
#include <algorithm> #include <cstdint> #include <functional> constexpr bool strictly_positive(int lhs) { return std::greater<>()(lhs, 0); } int main() { constexpr std::int64_t low = 0B11; constexpr std::uint16_t high = 0X11; std::greater<> greater{}; static_assert(greater(high, low)); constexpr static auto arr = {0, 1, 2, 3, 4, 5}; static_assert(!std::all_of(arr.begin(), arr.end(), strictly_positive)); static_assert(std::all_of(arr.begin() + 1, arr.end(), strictly_positive)); }
[editar] Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
---|---|---|---|
LWG 2562 | C++98 | El orden total de punteros podría ser inconsistente. | Se garantiza que es consistente. |