30 #ifndef _GLIBCXX_EXPERIMENTAL_FS_FWD_H
31 #define _GLIBCXX_EXPERIMENTAL_FS_FWD_H 1
33 #if __cplusplus < 201103L
41 namespace std _GLIBCXX_VISIBILITY(default)
43 _GLIBCXX_BEGIN_NAMESPACE_VERSION
45 namespace experimental
51 #if _GLIBCXX_USE_CXX11_ABI
52 inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
67 _GLIBCXX_BEGIN_NAMESPACE_CXX11
69 class filesystem_error;
70 class directory_entry;
71 class directory_iterator;
72 class recursive_directory_iterator;
73 _GLIBCXX_END_NAMESPACE_CXX11
82 enum class file_type : signed char {
83 none = 0, not_found = -1, regular = 1, directory = 2, symlink = 3,
84 block = 4, character = 5, fifo = 6, socket = 7, unknown = 8
90 skip_existing = 1, overwrite_existing = 2, update_existing = 4,
92 copy_symlinks = 16, skip_symlinks = 32,
93 directories_only = 64, create_symlinks = 128, create_hard_links = 256
99 using __utype =
typename std::underlying_type<copy_options>::type;
101 static_cast<__utype
>(__x) &
static_cast<__utype
>(__y));
107 using __utype =
typename std::underlying_type<copy_options>::type;
109 static_cast<__utype
>(__x) |
static_cast<__utype
>(__y));
115 using __utype =
typename std::underlying_type<copy_options>::type;
117 static_cast<__utype
>(__x) ^
static_cast<__utype
>(__y));
123 using __utype =
typename std::underlying_type<copy_options>::type;
124 return static_cast<copy_options>(~static_cast<__utype>(__x));
129 {
return __x = __x & __y; }
133 {
return __x = __x | __y; }
137 {
return __x = __x ^ __y; }
162 remove_perms = 0x20000,
163 symlink_nofollow = 0x40000
169 using __utype =
typename std::underlying_type<perms>::type;
170 return static_cast<perms>(
171 static_cast<__utype
>(__x) &
static_cast<__utype
>(__y));
177 using __utype =
typename std::underlying_type<perms>::type;
178 return static_cast<perms>(
179 static_cast<__utype
>(__x) |
static_cast<__utype
>(__y));
185 using __utype =
typename std::underlying_type<perms>::type;
186 return static_cast<perms>(
187 static_cast<__utype
>(__x) ^
static_cast<__utype
>(__y));
191 operator~(
perms __x) noexcept
193 using __utype =
typename std::underlying_type<perms>::type;
194 return static_cast<perms>(~static_cast<__utype>(__x));
199 {
return __x = __x & __y; }
203 {
return __x = __x | __y; }
207 {
return __x = __x ^ __y; }
210 enum class directory_options : unsigned char {
211 none = 0, follow_directory_symlink = 1, skip_permission_denied = 2
214 constexpr directory_options
215 operator&(directory_options __x, directory_options __y) noexcept
217 using __utype =
typename std::underlying_type<directory_options>::type;
218 return static_cast<directory_options
>(
219 static_cast<__utype
>(__x) &
static_cast<__utype
>(__y));
222 constexpr directory_options
223 operator|(directory_options __x, directory_options __y) noexcept
225 using __utype =
typename std::underlying_type<directory_options>::type;
226 return static_cast<directory_options
>(
227 static_cast<__utype
>(__x) |
static_cast<__utype
>(__y));
230 constexpr directory_options
231 operator^(directory_options __x, directory_options __y) noexcept
233 using __utype =
typename std::underlying_type<directory_options>::type;
234 return static_cast<directory_options
>(
235 static_cast<__utype
>(__x) ^
static_cast<__utype
>(__y));
238 constexpr directory_options
239 operator~(directory_options __x) noexcept
241 using __utype =
typename std::underlying_type<directory_options>::type;
242 return static_cast<directory_options
>(~static_cast<__utype>(__x));
245 inline directory_options&
246 operator&=(directory_options& __x, directory_options __y) noexcept
247 {
return __x = __x & __y; }
249 inline directory_options&
250 operator|=(directory_options& __x, directory_options __y) noexcept
251 {
return __x = __x | __y; }
253 inline directory_options&
254 operator^=(directory_options& __x, directory_options __y) noexcept
255 {
return __x = __x ^ __y; }
257 using file_time_type = std::chrono::system_clock::time_point;
261 void copy(
const path& __from,
const path& __to,
copy_options __options);
262 void copy(
const path& __from,
const path& __to,
copy_options __options,
263 error_code&) noexcept;
265 bool copy_file(
const path& __from,
const path& __to,
copy_options __option);
266 bool copy_file(
const path& __from,
const path& __to,
copy_options __option,
271 file_status status(
const path&);
272 file_status status(
const path&, error_code&) noexcept;
274 bool status_known(file_status) noexcept;
276 file_status symlink_status(
const path&);
277 file_status symlink_status(
const path&, error_code&) noexcept;
279 bool is_regular_file(file_status) noexcept;
280 bool is_symlink(file_status) noexcept;
287 _GLIBCXX_END_NAMESPACE_VERSION
copy_options
Bitmask type.
ISO C++ entities toplevel namespace is std.
bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
bitset< _Nb > operator&(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.