// -*- C++ -*- //===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// export namespace std::filesystem { // [fs.class.path], paths using std::filesystem::path; // [fs.path.nonmember], path non-member functions using std::filesystem::hash_value; using std::filesystem::swap; // [fs.class.filesystem.error], filesystem errors using std::filesystem::filesystem_error; #ifndef _LIBCPP_HAS_NO_FILESYSTEM // [fs.class.directory.entry], directory entries using std::filesystem::directory_entry; // [fs.class.directory.iterator], directory iterators using std::filesystem::directory_iterator; // [fs.dir.itr.nonmembers], range access for directory iterators using std::filesystem::begin; using std::filesystem::end; // [fs.class.rec.dir.itr], recursive directory iterators using std::filesystem::recursive_directory_iterator; #endif // _LIBCPP_HAS_NO_FILESYSTEM // [fs.rec.dir.itr.nonmembers], range access for recursive directory iterators // [fs.class.file.status], file status using std::filesystem::file_status; using std::filesystem::space_info; // [fs.enum], enumerations using std::filesystem::copy_options; using std::filesystem::directory_options; using std::filesystem::file_type; using std::filesystem::perm_options; using std::filesystem::perms; using std::filesystem::file_time_type; // several of these enums are a bitmask type. // [bitmask.types] specified operators using std::filesystem::operator&; using std::filesystem::operator&=; using std::filesystem::operator^; using std::filesystem::operator^=; using std::filesystem::operator|; using std::filesystem::operator|=; using std::filesystem::operator~; #ifndef _LIBCPP_HAS_NO_FILESYSTEM // [fs.op.funcs], filesystem operations using std::filesystem::absolute; using std::filesystem::canonical; using std::filesystem::copy; using std::filesystem::copy_file; using std::filesystem::copy_symlink; using std::filesystem::create_directories; using std::filesystem::create_directory; using std::filesystem::create_directory_symlink; using std::filesystem::create_hard_link; using std::filesystem::create_symlink; using std::filesystem::current_path; using std::filesystem::equivalent; using std::filesystem::exists; using std::filesystem::file_size; using std::filesystem::hard_link_count; using std::filesystem::is_block_file; using std::filesystem::is_character_file; using std::filesystem::is_directory; using std::filesystem::is_empty; using std::filesystem::is_fifo; using std::filesystem::is_other; using std::filesystem::is_regular_file; using std::filesystem::is_socket; using std::filesystem::is_symlink; using std::filesystem::last_write_time; using std::filesystem::permissions; using std::filesystem::proximate; using std::filesystem::read_symlink; using std::filesystem::relative; using std::filesystem::remove; using std::filesystem::remove_all; using std::filesystem::rename; using std::filesystem::resize_file; using std::filesystem::space; using std::filesystem::status; using std::filesystem::status_known; using std::filesystem::symlink_status; using std::filesystem::temp_directory_path; using std::filesystem::weakly_canonical; #endif // _LIBCPP_HAS_NO_FILESYSTEM // [depr.fs.path.factory] using std::filesystem::u8path; } // namespace std::filesystem // [fs.path.hash], hash support export namespace std { using std::hash; } export namespace std::ranges { #ifndef _LIBCPP_HAS_NO_FILESYSTEM using std::ranges::enable_borrowed_range; using std::ranges::enable_view; #endif // _LIBCPP_HAS_NO_FILESYSTEM } // namespace std::ranges