[libc++] Follow-up to r337968: use an explicit cast as suggested by Eric
authorAlex Lorenz <arphaman@gmail.com>
Wed, 25 Jul 2018 23:59:54 +0000 (23:59 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Wed, 25 Jul 2018 23:59:54 +0000 (23:59 +0000)
llvm-svn: 337984

libcxx/src/experimental/filesystem/filesystem_common.h

index a74cae457ecd65a39a6365627be69711f9265fd6..5d2a5ed4e3abf9ed12b24e7e0280604413b32962 100644 (file)
@@ -393,8 +393,10 @@ bool set_file_times(const path& p, std::array<TimeSpec, 2> const& TS,
                     error_code& ec) {
 #if !defined(_LIBCPP_USE_UTIMENSAT)
   using namespace chrono;
-  auto Convert = [](long nsec) -> decltype(std::declval<::timeval>().tv_usec) {
-    return duration_cast<microseconds>(nanoseconds(nsec)).count();
+  auto Convert = [](long nsec) {
+    using int_type = decltype(std::declval<::timeval>().tv_usec);
+    auto dur = duration_cast<microseconds>(nanoseconds(nsec)).count();
+    return static_cast<int_type>(dur);
   };
   struct ::timeval ConvertedTS[2] = {{TS[0].tv_sec, Convert(TS[0].tv_nsec)},
                                      {TS[1].tv_sec, Convert(TS[1].tv_nsec)}};