Serial / Parallel HDF5 を扱う h5c の C++ ラッパーです。 RAII、コンテナ、例外を使って読み書きでき、可視化用の出力にも対応します。
- C++17 対応コンパイラ、CMake 3.20 以上
- h5c(インストール済み、または
external/h5c・../h5cに配置) - 並列 I/O には MPI と
H5C_ENABLE_PARALLEL=ONで構成した h5c
テンプレートの CMAKE_PREFIX_PATH に h5c と HDF5 のインストール先を、
CMAKE_INSTALL_PREFIX に h5cpp のインストール先を指定します。
cp misc/CMakeUserPresets.json.template CMakeUserPresets.json
$EDITOR CMakeUserPresets.json
cmake --preset my-intel
cmake --build --preset my-intel
cmake --install build/my-intelインストール先には ${HOME}/.local/opt/intel/h5cpp-<version> などを指定します。
並列版は my-intel-mpi(H5CPP_ENABLE_PARALLEL=ON、既定は OFF)です。
h5c が見つからない場合は external/h5c、../h5c の順にソースを探します。
GNU・C++20 の設定は 使用ガイド を参照してください。
利用側の CMake では、インストール先を CMAKE_PREFIX_PATH に指定します。
find_package(h5cpp CONFIG REQUIRED)
target_link_libraries(my_program PRIVATE h5cpp::h5cpp)#include <h5cpp/h5cpp.hpp>
#include <vector>
int main() {
std::vector<double> values = {1, 2, 3};
h5cpp::file f("result.h5", h5cpp::mode::truncate);
f.write("/values", values);
f.close();
}失敗は h5cpp::error で通知されます。