|  | 
        A completion condition is a function object that is
        used with the algorithms read, async_read, write, and async_write to determine when the
        algorithm has completed transferring data.
      
        A type X meets the CompletionCondition requirements if it
        satisfies the requirements of Destructible
        (C++Std [destructible]) and MoveConstructible
        (C++Std [moveconstructible]), as well as the additional requirements listed
        below.
      
        In the table below, x denotes
        a value of type X, ec denotes a (possibly const) value of
        type error_code, and n denotes a (possibly const) value of type
        size_t.
      
Table 9. CompletionCondition requirements
| expression | return type | 
                  assertion/note | 
|---|---|---|
| 
                   | 
                   | 
                  Let  |