141 _M_path.replace_filename(__p);
148 _M_path.replace_filename(__p);
154 { _M_type = symlink_status().type(); }
158 { _M_type = symlink_status(
__ec).type(); }
166 {
return filesystem::exists(
file_status{_M_file_type()}); }
173 is_block_file()
const
174 {
return _M_file_type() == file_type::block; }
178 {
return _M_file_type(
__ec) == file_type::block; }
181 is_character_file()
const
182 {
return _M_file_type() == file_type::character; }
186 {
return _M_file_type(
__ec) == file_type::character; }
190 {
return _M_file_type() == file_type::directory; }
194 {
return _M_file_type(
__ec) == file_type::directory; }
198 {
return _M_file_type() == file_type::fifo; }
202 {
return _M_file_type(
__ec) == file_type::fifo; }
206 {
return filesystem::is_other(
file_status{_M_file_type()}); }
213 is_regular_file()
const
214 {
return _M_file_type() == file_type::regular; }
218 {
return _M_file_type(
__ec) == file_type::regular; }
222 {
return _M_file_type() == file_type::socket; }
226 {
return _M_file_type(
__ec) == file_type::socket; }
231 if (_M_type != file_type::none)
232 return _M_type == file_type::symlink;
233 return symlink_status().type() == file_type::symlink;
239 if (_M_type != file_type::none)
240 return _M_type == file_type::symlink;
241 return symlink_status(
__ec).type() == file_type::symlink;
246 {
return filesystem::file_size(_M_path); }
250 {
return filesystem::file_size(_M_path,
__ec); }
253 hard_link_count()
const
254 {
return filesystem::hard_link_count(_M_path); }
258 {
return filesystem::hard_link_count(_M_path,
__ec); }
261 last_write_time()
const
262 {
return filesystem::last_write_time(_M_path); }
267 {
return filesystem::last_write_time(_M_path,
__ec); }
271 {
return filesystem::status(_M_path); }
275 {
return filesystem::status(_M_path,
__ec); }
278 symlink_status()
const
279 {
return filesystem::symlink_status(_M_path); }
283 {
return filesystem::symlink_status(_M_path,
__ec); }
287 {
return _M_path ==
__rhs._M_path; }
289#if __cpp_lib_three_way_comparison
296 {
return _M_path !=
__rhs._M_path; }
300 {
return _M_path <
__rhs._M_path; }
304 {
return _M_path <=
__rhs._M_path; }
308 {
return _M_path >
__rhs._M_path; }
312 {
return _M_path >=
__rhs._M_path; }
322 template<
typename _CharT,
typename _Traits>
326 {
return __os << __d.path(); }
329 : _M_path(__p), _M_type(__t)
336 if (_M_type != file_type::none && _M_type != file_type::symlink)
338 return status().type();
345 if (_M_type != file_type::none && _M_type != file_type::symlink)
350 return status(
__ec).type();