Serialization without default constructibility.  
More...
 | 
| template<class F >  | 
| std::vector< std::byte >  | buffer (F &&f) | 
|   | Serialize into a buffer.  
  | 
|   | 
| template<class T >  | 
| T  | get (const std::byte *&p) | 
|   | Reconstruct an object, advancing past its serialized form.  
  | 
|   | 
| template<class... TT>  | 
| auto  | get_tuple (const std::byte *p, const std::byte *e=nullptr) | 
|   | Construct a tuple of objects.  
  | 
|   | 
| template<class T , class S  = typename std::vector<T>::size_type>  | 
| auto  | get_vector (const std::byte *&p) | 
|   | Construct a std::vector from a size and then elements.  
  | 
|   | 
| template<class... TT, class P >  | 
| void  | put (P &p, const TT &... tt) | 
|   | Store objects and advance past their serialized form.  
  | 
|   | 
| template<class... TT>  | 
| auto  | put_tuple (const TT &... tt) | 
|   | Serialize a fixed set of objects into a buffer.  
  | 
|   | 
| template<class... TT>  | 
| std::size_t  | size (const TT &... tt) | 
|   | Compute the serialized size of a fixed set of objects.  
  | 
|   | 
Serialization without default constructibility. 
Supported types:
- any default-constructible, trivially-move-assignable, non-pointer type
 
- any type that supports the Legion return-value serialization interface
 
std::string  
- any type with an appropriate specialization of 
traits or convert  
- any 
std::pair, std::tuple, std::array, std::vector, std::set, std::map, std::unordered_map of a supported type 
Contents are in flecsi::util::serial unless otherwise specified. 
◆ put()
template<class... TT, class P > 
      
        
          | void put  | 
          ( | 
          P & |           p,  | 
        
        
           | 
           | 
          const TT &... |           tt ) | 
        
      
 
Store objects and advance past their serialized form. 
- Template Parameters
 - 
  
    | P | std::size_t for calculating sizes, or std::byte* for actual serialization  | 
  
   
- Parameters
 - 
  
    | p | pointer or size  | 
    | tt | objects  | 
  
   
 
 
◆ size()
template<class... TT> 
      
        
          | std::size_t size  | 
          ( | 
          const TT &... |           tt | ) | 
           | 
        
      
 
Compute the serialized size of a fixed set of objects. 
 
 
◆ get()
template<class T > 
      
        
          | T get  | 
          ( | 
          const std::byte *& |           p | ) | 
           | 
        
      
 
Reconstruct an object, advancing past its serialized form. 
 
 
◆ buffer()
template<class F > 
      
        
          | std::vector< std::byte > buffer  | 
          ( | 
          F && |           f | ) | 
           | 
        
      
 
Serialize into a buffer. 
- Parameters
 - 
  
    | f | a function that accepts an argument for put  | 
  
   
 
 
◆ put_tuple()
template<class... TT> 
      
        
          | auto put_tuple  | 
          ( | 
          const TT &... |           tt | ) | 
           | 
        
      
 
Serialize a fixed set of objects into a buffer. 
Reconstruct with get_tuple. 
 
 
◆ get_tuple()
template<class... TT> 
      
        
          | auto get_tuple  | 
          ( | 
          const std::byte * |           p,  | 
        
        
           | 
           | 
          const std::byte * |           e = nullptr ) | 
        
      
 
Construct a tuple of objects. 
- Parameters
 - 
  
    | e | pointer to end of representation, if known  | 
  
   
 
 
◆ get_vector()
template<class T , class S  = typename std::vector<T>::size_type> 
      
        
          | auto get_vector  | 
          ( | 
          const std::byte *& |           p | ) | 
           | 
        
      
 
Construct a std::vector from a size and then elements. 
- Template Parameters
 - 
  
  
 
- Warning
 get<std::vector<T>> is not guaranteed to be equivalent.