cpp/filesystem/status

@1@ Determines the type and attributes of the filesystem object identified by as if by POSIX  (symlinks are followed to their targets). In the following description, is the result of, where  is obtained as if by taking  from the POSIX  and converting it to the type.
 * If is a regular file (as if by POSIX ), returns.
 * If is a directory (as if by POSIX ), returns
 * If is a block special file (as if by POSIX ), returns
 * If is a character special file (as if by POSIX ), returns
 * If is a fifo or pipe file (as if by POSIX ), returns
 * If is a socket (as if by POSIX ), returns
 * If has an implementation-defined file type, returns  where  is the implementation-defined  constant for that type.
 * If does not exist, returns
 * If exists but file attributes cannot be determined, e.g. due to lack of permissions, returns
 * If errors prevent even knowing whether exists, the non-throwing overload sets  and returns, and the throwing overload throws
 * Otherwise, returns

@2@ Same as except that the behavior is as if the POSIX  is used (symlinks are not followed):
 * If is a symlink, returns

Return value
The file status (a std object).