3 The SDDS++ C++ Library

SDDS++ is the modern C++17 interface for serial SDDS files. It is a standalone implementation and does not call or link against the C SDDS library. Files written by either implementation are intended to be readable by the other. The C library remains the format reference and should be used for existing C applications and for MPI I/O; MPI support is deliberately outside SDDS++.

The public declarations are in SDDS.hpp, all public names are in the sdds namespace, and the link-library name is SDDSpp. The product name returned by sdds::libraryName is “SDDS++”. The library supports SDDS protocol versions 1 through 5, all current SDDS types, ASCII and binary data, row-major and column-major data, both byte orders, arrays, associates, header includes, standard input and output, and gzip, XZ, and LZMA compression.

 3.1 Building and Linking
 3.2 Object Model and Data Types
 3.3 Input Routines
  3.3.1 Setup and Sequential Reading
  3.3.2 Field and Row Selection
  3.3.3 Page Access and Indexing
 3.4 Output Routines
  3.4.1 Defining a Layout
  3.4.2 Writing Pages
 3.5 Generalized I/O and Compression
 3.6 Append, Update, and Live Files
 3.7 Layout and Data Transformations
 3.8 Error Handling and Resource Limits
 3.9 Thread Safety
 3.10 Compatibility Interface and Examples