|   | Create an array_context given a core builder.  
  | 
|   | Conversion operator which provides a rooted array context given any stream currently in a nested array_context.  
  | 
|   | Conversion operator for single_context.  
  | 
|   | << operator for concatenating another array.  
  | 
|   | << operator for closing a subarray in the core builder.  
  | 
|   | << operator for opening a new subarray in the core builder.  
  | 
|   | << operator for opening a new subdocument in the core builder.  
  | 
| detail::requires_t< array_context &, detail::disjunction< detail::is_invocable< Func, array_context >, detail::is_invocable< Func, single_context > > >  | operator<< (Func &&func) | 
|   | << operator for accepting a callable of the form void(array_context) or void(single_context) and invoking it to perform 1 or more value appends to the core builder.  
  | 
| detail::requires_t< bsoncxx::v_noabi::array::value, std::is_same< base, closed_context >, detail::is_alike< T, finalize_type > >  | operator<< (T &&) | 
|   | << operator for finalizing the stream.  
  | 
| detail::requires_not_t< array_context &, detail::is_invocable< T, array_context<> >, detail::is_invocable< T, single_context >, detail::is_alike< T, finalize_type > >  | operator<< (T &&t) | 
|   | << operator for accepting a real value and appending it to the core builder.  
  |