1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00
Files
mariadb-columnstore-engine/utils/common/boost_copy_options_compat.hpp
Petr Vaněk 86159cc899 Migration for Boost 1.85
Boost 1.85 removed some deprecated code in filesystem module which is
still used in columnstore:

- The boost/filesystem/convenience.hpp was removed but columnstore does
  not use any functionality from that file except indirect includes.
  Therefore this include is removed or replaced with more general
  boost/filesystem.hpp. The convenience.hpp header file was deprecated
  in filesystem V3 introduced in Boost 1.46.0.

- `normalize` method was removed and users are suggested to replace it
  with `lexically_normal` method, which was introduced in Boost 1.60.0.
  Original `normalize` call is preserved for backward compatibility with
  old Boost version, however`, `lexically_normal` method is preferably
  used with Boost 1.60.0 and newer.

- The `copy_option` was removed in favor of `copy_options` (note the
  trailing 's'), but enum values were renamed. Namely, `fail_if_exists`
  is replaced with `none` and `overwrite_if_exists` is replaced with
  `overwrite_existing`. The `copy_options` was introduced in Boost
  1.74.0.

  New form is used instead, but a backward compatibility layer for Boost
  1.73.0 and older was introduced in boost_copy_options_compat.hpp file.
  This solution seems to be less awkward than using multiple #if #else
  #endif blocks in source code.
2025-02-23 02:52:52 +04:00

29 lines
571 B
C++

#ifndef COMPAT_BOOST_FILESYSTEM_HPP
#define COMPAT_BOOST_FILESYSTEM_HPP
#include <boost/version.hpp>
// copy_option was replaced with copy_options in version 1.74.0 released 2020-08-14
// copy_option was removed in version 1.85.0 released 2024-04-15
#if BOOST_VERSION < 107400
#include <boost/filesystem/operations.hpp>
namespace boost
{
namespace filesystem
{
namespace copy_options
{
constexpr copy_option::enum_type overwrite_existing = copy_option::overwrite_if_exists;
constexpr copy_option::enum_type none = copy_option::fail_if_exists;
}
}
}
#endif
#endif