call_once Function

Provides a mechanism for calling a specified callable object exactly once during execution.

template<class Callable, class... Args>
   void call_once(once_flag& Flag,
      Callable F&&, Args&&... A);

Parameters

  • Flag
    A once_flag object that ensures that the callable object is only called once.

  • F
    A callable object.

  • A
    An argument list.

Remarks

If Flag is not valid, the function throws a system_error that has an error code of invalid_argument. Otherwise, the template function uses its Flag argument to ensure that it calls F(A...) successfully exactly once, regardless of how many times the template function is called. If F(A...) exits by throwing an exception, the call was not successful.

Requirements

Header: mutex

Namespace: std

See Also

Reference

<mutex>

Other Resources

Header Files