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 namespace experimental
49 _GLIBCXX_BEGIN_NAMESPACE_VERSION
51 #if _GLIBCXX_USE_CXX11_ABI 52 inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
66 _GLIBCXX_BEGIN_NAMESPACE_CXX11
68 class filesystem_error;
69 class directory_entry;
70 class directory_iterator;
71 class recursive_directory_iterator;
72 _GLIBCXX_END_NAMESPACE_CXX11
81 enum class file_type : signed char {
82 none = 0, not_found = -1, regular = 1, directory = 2, symlink = 3,
83 block = 4, character = 5, fifo = 6, socket = 7, unknown = 8
89 skip_existing = 1, overwrite_existing = 2, update_existing = 4,
91 copy_symlinks = 16, skip_symlinks = 32,
92 directories_only = 64, create_symlinks = 128, create_hard_links = 256
98 using __utype =
typename std::underlying_type<copy_options>::type;
100 static_cast<__utype
>(__x) & static_cast<__utype>(__y));
106 using __utype =
typename std::underlying_type<copy_options>::type;
108 static_cast<__utype
>(__x) | static_cast<__utype>(__y));
114 using __utype =
typename std::underlying_type<copy_options>::type;
116 static_cast<__utype
>(__x) ^ static_cast<__utype>(__y));
122 using __utype =
typename std::underlying_type<copy_options>::type;
123 return static_cast<copy_options>(~static_cast<__utype>(__x));
128 {
return __x = __x & __y; }
132 {
return __x = __x | __y; }
136 {
return __x = __x ^ __y; }
161 remove_perms = 0x20000,
162 resolve_symlinks = 0x40000
168 using __utype =
typename std::underlying_type<perms>::type;
169 return static_cast<perms>(
170 static_cast<__utype
>(__x) & static_cast<__utype>(__y));
176 using __utype =
typename std::underlying_type<perms>::type;
177 return static_cast<perms>(
178 static_cast<__utype
>(__x) | static_cast<__utype>(__y));
184 using __utype =
typename std::underlying_type<perms>::type;
185 return static_cast<perms>(
186 static_cast<__utype
>(__x) ^ static_cast<__utype>(__y));
190 operator~(
perms __x) noexcept
192 using __utype =
typename std::underlying_type<perms>::type;
193 return static_cast<perms>(~static_cast<__utype>(__x));
198 {
return __x = __x & __y; }
202 {
return __x = __x | __y; }
206 {
return __x = __x ^ __y; }
209 enum class directory_options : unsigned char {
210 none = 0, follow_directory_symlink = 1, skip_permission_denied = 2
213 constexpr directory_options
214 operator&(directory_options __x, directory_options __y) noexcept
216 using __utype =
typename std::underlying_type<directory_options>::type;
217 return static_cast<directory_options
>(
218 static_cast<__utype
>(__x) & static_cast<__utype>(__y));
221 constexpr directory_options
222 operator|(directory_options __x, directory_options __y) noexcept
224 using __utype =
typename std::underlying_type<directory_options>::type;
225 return static_cast<directory_options
>(
226 static_cast<__utype
>(__x) | static_cast<__utype>(__y));
229 constexpr directory_options
230 operator^(directory_options __x, directory_options __y) noexcept
232 using __utype =
typename std::underlying_type<directory_options>::type;
233 return static_cast<directory_options
>(
234 static_cast<__utype
>(__x) ^ static_cast<__utype>(__y));
237 constexpr directory_options
238 operator~(directory_options __x) noexcept
240 using __utype =
typename std::underlying_type<directory_options>::type;
241 return static_cast<directory_options
>(~static_cast<__utype>(__x));
244 inline directory_options&
245 operator&=(directory_options& __x, directory_options __y) noexcept
246 {
return __x = __x & __y; }
248 inline directory_options&
249 operator|=(directory_options& __x, directory_options __y) noexcept
250 {
return __x = __x | __y; }
252 inline directory_options&
253 operator^=(directory_options& __x, directory_options __y) noexcept
254 {
return __x = __x ^ __y; }
270 file_status status(
const path&);
273 bool status_known(file_status) noexcept;
275 file_status symlink_status(
const path&);
278 bool is_regular_file(file_status) noexcept;
279 bool is_symlink(file_status) noexcept;
282 _GLIBCXX_END_NAMESPACE_VERSION
290 #endif // _GLIBCXX_EXPERIMENTAL_FS_FWD_H
bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
copy_options
Bitmask type.
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.
ISO C++ entities toplevel namespace is std.