Skip to content

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

Open
@mloskot

Description

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

Metadata

Assignees

Labels

cat/deprecationDeprecate a feature or functionalityext/ioboost/gil/extension/io/good-first-issueOpportunity for new contributors to help improving GIL

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions