std::function<R(Args...)>::operatorbool (3) - Linux Manuals

std::function<R(Args...)>::operatorbool: std::function<R(Args...)>::operatorbool

NAME

std::function<R(Args...)>::operatorbool - std::function<R(Args...)>::operatorbool

Synopsis


explicit operator bool() const noexcept; (since C++11)


Checks whether *this stores a callable function target, i.e. is not empty.

Parameters


(none)

Return value


true if *this stores a callable function target, false otherwise.

Example


// Run this code


  #include <functional>
  #include <iostream>


  void sampleFunction()
  {
      std::cout << "This is the sample function!\n";
  }


  void checkFunc( std::function<void()> &func )
  {
      // Use operator bool to determine if callable target is available.
      if( func )
      {
          std::cout << "Function is not empty! Calling function.\n";
          func();
      }
      else
      {
          std::cout << "Function is empty. Nothing to do.\n";
      }
  }


  int main()
  {
      std::function<void()> f1;
      std::function<void()> f2( sampleFunction );


      std::cout << "f1: ";
      checkFunc( f1 );


      std::cout << "f2: ";
      checkFunc( f2 );
  }

Output:


  f1: Function is empty. Nothing to do.
  f2: Function is not empty! Calling function.
  This is the sample function!