gil icon indicating copy to clipboard operation
gil copied to clipboard

Deprecate I/O interface using boost::filesystem::path

Open mloskot opened this issue 6 years ago • 2 comments

TL;TR: We are planning to deprecate functions accepting boost::filesystem::path and replace with C++17 std::filesystem

What

Currently, Boost.Filesystem support is optional, guarded with macro BOOST_GIL_IO_ADD_FS_PATH_SUPPORT checked in number of the I/O extension headers.

It is reasonable to replace the boost::filesystem with std::filesystem whenever GIL code is compiled using C++17, unless user explicitly desires to use Boost.Filesystem via an appropriate #define.

Why

  1. We, @stefanseefeld & @mloskot, don't see any added value in function overloads such as make_dynamic_image_reader that use filesystem::path over just passing std::string or char const* and leaving the conversion from the path to string to the converting constructors or user.

  2. Avoid Boost.Filesystem as direct and mandatory dependency.

Briefly, we considered automatically replacing boost::filesystem with std::filesystem, depending on compiler and target C++ version, but we quickly landed at the point 1. Plus, the <filesystem> detection heuristics would not be as straightforward as one may expect.

When

As soon as possible - along with complete C++11 switch

mloskot avatar Jan 21 '19 21:01 mloskot

I've updated this issue with C++17 std::filesystem:

It is reasonable to replace the boost::filesystem with std::filesystem whenever GIL code is compiled using C++17, unless user explicitly desires to use Boost.Filesystem via an appropriate #define.

mloskot avatar Feb 03 '22 22:02 mloskot

This is included in the planning towards C++14/17 discussion here https://github.com/boostorg/gil/discussions/676

mloskot avatar May 20 '22 09:05 mloskot