123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- // Copyright 2018-2019 Antony Polukhin.
- //
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt
- // or copy at http://www.boost.org/LICENSE_1_0.txt)
- /// \file boost/dll/config.hpp
- /// \brief Imports filesystem, error_code, errc, system_error, make_error_code from Boost or C++17 into `boost::dll::fs` namespace.
- #ifndef BOOST_DLL_DETAIL_CONFIG_HPP
- #define BOOST_DLL_DETAIL_CONFIG_HPP
- #include <boost/config.hpp>
- #ifdef BOOST_HAS_PRAGMA_ONCE
- # pragma once
- #endif
- #ifdef BOOST_DLL_DOXYGEN
- /// Define this macro to make Boost.DLL use C++17's std::filesystem::path, std::system_error and std::error_code.
- #define BOOST_DLL_USE_STD_FS BOOST_DLL_USE_STD_FS
- /// This namespace contains aliases to the Boost or C++17 classes. Aliases are configured using BOOST_DLL_USE_STD_FS macro.
- namespace boost { namespace dll { namespace fs {
- /// Alias to `std::filesystem::path` if \forcedmacrolink{BOOST_DLL_USE_STD_FS} is defined by user.
- /// Alias to `boost::filesystem::path` otherwise.
- using path = std::conditional_t<BOOST_DLL_USE_STD_FS, std::filesystem::path, boost::filesystem::path>;
- /// Alias to `std::error_code` if \forcedmacrolink{BOOST_DLL_USE_STD_FS} is defined by user.
- /// boost::system::error_code otherwise.
- using error_code = std::conditional_t<BOOST_DLL_USE_STD_FS, std::error_code, boost::system::error_code>;
- /// Alias to `std::system_error` if \forcedmacrolink{BOOST_DLL_USE_STD_FS} is defined by user.
- /// Alias to `boost::system::system_error` otherwise.
- using system_error = std::conditional_t<BOOST_DLL_USE_STD_FS, std::system_error, boost::system::system_error>;
- }}}
- #endif
- #ifdef BOOST_DLL_USE_STD_FS
- #include <filesystem>
- #include <system_error>
- namespace boost { namespace dll { namespace fs {
- using namespace std::filesystem;
- using std::error_code;
- using std::system_error;
- using std::make_error_code;
- using std::errc;
- using std::system_category;
- }}}
- #else // BOOST_DLL_USE_STD_FS
- #include <boost/filesystem/path.hpp>
- #include <boost/filesystem/operations.hpp>
- #include <boost/system/error_code.hpp>
- namespace boost { namespace dll { namespace fs {
- using namespace boost::filesystem;
- using boost::system::error_code;
- using boost::system::system_error;
- using boost::system::errc::make_error_code;
- namespace errc = boost::system::errc;
- using boost::system::system_category;
- }}}
- #endif // BOOST_DLL_USE_STD_FS
- #endif // BOOST_DLL_DETAIL_PUSH_OPTIONS_HPP
|