operator==,!=(std::function)
De cppreference.com
<tbody>
</tbody>
| Definido en el archivo de encabezado <functional>
|
||
template< class R, class... ArgTypes > bool operator==( const std::function<R(ArgTypes...)>& f, std::nullptr_t ) noexcept; |
(1) | (desde C++11) |
template< class R, class... ArgTypes > bool operator==( std::nullptr_t, const std::function<R(ArgTypes...)>& f ) noexcept; |
(2) | (desde C++11) (hasta C++20) |
template< class R, class... ArgTypes > bool operator!=( const std::function<R(ArgTypes...)>& f, std::nullptr_t ) noexcept; |
(3) | (desde C++11) (hasta C++20) |
template< class R, class... ArgTypes > bool operator!=( std::nullptr_t, const std::function<R(ArgTypes...)>& f ) noexcept; |
(4) | (desde C++11) (hasta C++20) |
Compara una instancia de std::function con el puntero nulo. Las funciones vacías (es decir, funciones sin un destino invocable) se comparan iguales, las no vacías se comparan desiguales.
|
El operador |
(desde C++20) |
Parámetros
| f | - | Instancia de std::function a comparar.
|
Valor de retorno
1-2)
!f.3-4)
(bool) f.Ejemplo
Ejecuta este código
#include <functional>
#include <iostream>
using AlgunaFuncVoid = std::function<void(int)>;
class C {
public:
C(AlgunaFuncVoid func_void = nullptr) :
func_void_(func_void)
{
if (func_void_ == nullptr) { // comparación especializada con nullptr
func_void_ = std::bind(&C::func_por_defecto, this, std::placeholders::_1);
}
func_void_(7);
}
void func_por_defecto(int i) { std::cout << i << '\n'; };
private:
AlgunaFuncVoid func_void_;
};
void func_usuario(int i)
{
std::cout << (i + 1) << '\n';
}
int main()
{
C c1;
C c2(func_usuario);
}
Salida:
7
8
Véase también
(C++23) |
Compara una instancia de std::move_only_function con nullptr. (función) |