140 _M_path.replace_filename(__p);
147 _M_path.replace_filename(__p);
153 { _M_type = symlink_status().type(); }
157 { _M_type = symlink_status(
__ec).type(); }
165 {
return filesystem::exists(
file_status{_M_file_type()}); }
172 is_block_file()
const
173 {
return _M_file_type() == file_type::block; }
177 {
return _M_file_type(
__ec) == file_type::block; }
180 is_character_file()
const
181 {
return _M_file_type() == file_type::character; }
185 {
return _M_file_type(
__ec) == file_type::character; }
189 {
return _M_file_type() == file_type::directory; }
193 {
return _M_file_type(
__ec) == file_type::directory; }
197 {
return _M_file_type() == file_type::fifo; }
201 {
return _M_file_type(
__ec) == file_type::fifo; }
205 {
return filesystem::is_other(
file_status{_M_file_type()}); }
212 is_regular_file()
const
213 {
return _M_file_type() == file_type::regular; }
217 {
return _M_file_type(
__ec) == file_type::regular; }
221 {
return _M_file_type() == file_type::socket; }
225 {
return _M_file_type(
__ec) == file_type::socket; }
230 if (_M_type != file_type::none)
231 return _M_type == file_type::symlink;
232 return symlink_status().type() == file_type::symlink;
238 if (_M_type != file_type::none)
239 return _M_type == file_type::symlink;
240 return symlink_status(
__ec).type() == file_type::symlink;
245 {
return filesystem::file_size(_M_path); }
249 {
return filesystem::file_size(_M_path,
__ec); }
252 hard_link_count()
const
253 {
return filesystem::hard_link_count(_M_path); }
257 {
return filesystem::hard_link_count(_M_path,
__ec); }
260 last_write_time()
const
261 {
return filesystem::last_write_time(_M_path); }
266 {
return filesystem::last_write_time(_M_path,
__ec); }
270 {
return filesystem::status(_M_path); }
274 {
return filesystem::status(_M_path,
__ec); }
277 symlink_status()
const
278 {
return filesystem::symlink_status(_M_path); }
282 {
return filesystem::symlink_status(_M_path,
__ec); }
286 {
return _M_path ==
__rhs._M_path; }
288#if __cpp_lib_three_way_comparison
295 {
return _M_path !=
__rhs._M_path; }
299 {
return _M_path <
__rhs._M_path; }
303 {
return _M_path <=
__rhs._M_path; }
307 {
return _M_path >
__rhs._M_path; }
311 {
return _M_path >=
__rhs._M_path; }
321 template<
typename _CharT,
typename _Traits>
325 {
return __os << __d.path(); }
328 : _M_path(__p), _M_type(__t)
335 if (_M_type != file_type::none && _M_type != file_type::symlink)
337 return status().type();
344 if (_M_type != file_type::none && _M_type != file_type::symlink)
349 return status(
__ec).type();