--- D:\Development\ThirdParty\Boost\Current\libs\filesystem\src\operations.cpp.bak 2016-05-06 05:11:33.000000000 +0800 +++ D:\Development\ThirdParty\Boost\Current\libs\filesystem\src\operations.cpp 2016-06-07 18:31:34.000000000 +0800 @@ -878,21 +878,30 @@ { file_status s(symlink_status(from, *ec)); if (ec != 0 && *ec) return; if(is_symlink(s)) { - copy_symlink(from, to, *ec); + if (ec) + copy_symlink(from, to, *ec); + else + ((void (*)(const path &, const path &))copy_symlink)(from, to); } else if(is_directory(s)) { - copy_directory(from, to, *ec); + if (ec) + copy_directory(from, to, *ec); + else + ((void (*)(const path &, const path &))copy_directory)(from, to); } else if(is_regular_file(s)) { - copy_file(from, to, fs::copy_option::fail_if_exists, *ec); + if (ec) + copy_file(from, to, fs::copy_option::fail_if_exists, *ec); + else + copy_file(from, to, fs::copy_option::fail_if_exists); } else { if (ec == 0) BOOST_FILESYSTEM_THROW(filesystem_error("boost::filesystem::copy", from, to, error_code(BOOST_ERROR_NOT_SUPPORTED, system_category())));