Skip to content

File gdal_init.hpp

File List > io > gdal_init.hpp

Go to the documentation of this file

#pragma once

#include "gdal_priv.h"

// Singleton to ensure GDAL is registered only once
class GDALInitializer {
 public:
  static void ensure_initialized() {
    static GDALInitializer instance;
    (void)instance;  // Suppress unused variable warning
  }

 private:
  GDALInitializer() { GDALAllRegister(); }
  // Prevent copying
  GDALInitializer(const GDALInitializer&) = delete;
  GDALInitializer& operator=(const GDALInitializer&) = delete;
};

// Convenience function to ensure GDAL is initialized
inline void ensure_gdal_initialized() { GDALInitializer::ensure_initialized(); }