cpp/filesystem/copy file

@1@ The default, equivalent to with  used as @2@ Copies a single file from  to, using the copy options indicated by. The behavior is undefined if there is more than one option in any of the option group present in  (even in the groups not relevant to std)
 * If std (either because the source file doesn't exist or because it is not a regular file), report an error
 * Otherwise, if the destination file does not exist,
 * copies the contents and the attributes of the file to which resolves to the file to which  resolves (symlinks are followed)


 * Otherwise, if the destination file already exists...
 * Report an error if any of the following is true:
 * and are the same as determined by std;
 * is not a regular file as determined by std
 * none of the std control options are set in
 * Otherwise, if is set in, do nothing
 * Otherwise, if is set in, copy the contents and the attributes of the file to which  resolves to the file to which  resolves
 * Otherwise, if is set in, only copy the file if  is newer than , as defined by std.

The non-throwing overloads return if an error occurs.

Return value
if the file was copied, otherwise.