From acf89bb271503267c597db72a8cf7b0cd51f98c1 Mon Sep 17 00:00:00 2001 From: Lamar Moore <lamar.moore@stfc.ac.uk> Date: Wed, 14 Mar 2018 16:02:48 +0000 Subject: [PATCH] Fixes to support msvc 2017 builds --- Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp | 4 +++- Framework/MDAlgorithms/src/MDNormDirectSC.cpp | 4 +++- Framework/MDAlgorithms/src/MDNormSCD.cpp | 4 +++- Framework/Nexus/src/NexusClasses.cpp | 4 ++-- buildconfig/CMake/Bootstrap.cmake | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp index 4383a4134ce..34c4b379a20 100644 --- a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp +++ b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp @@ -425,7 +425,9 @@ void CalculateCoverageDGS::exec() { std::vector<coord_t> pos(4); std::transform(curIntSec.getBareArray(), curIntSec.getBareArray() + 4, prevIntSec.getBareArray(), pos.begin(), - VectorHelper::SimpleAverage<double>()); + [](const double lhs, const double rhs) { + return static_cast<coord_t>(0.5 * (lhs + rhs)); + }); // transform kf to energy transfer pos[3] = static_cast<coord_t>(m_Ei - pos[3] * pos[3] / energyToK); diff --git a/Framework/MDAlgorithms/src/MDNormDirectSC.cpp b/Framework/MDAlgorithms/src/MDNormDirectSC.cpp index c4ca06ff0f1..62a274ad3d1 100644 --- a/Framework/MDAlgorithms/src/MDNormDirectSC.cpp +++ b/Framework/MDAlgorithms/src/MDNormDirectSC.cpp @@ -528,7 +528,9 @@ for (int64_t i = 0; i < ndets; i++) { // Average between two intersections for final position std::transform(curIntSec.data(), curIntSec.data() + vmdDims, prevIntSec.data(), pos.begin(), - VectorHelper::SimpleAverage<coord_t>()); + [](const double rhs, const double lhs) { + return static_cast<coord_t>(0.5 * (rhs + lhs)); + }); // transform kf to energy transfer pos[3] = static_cast<coord_t>(m_Ei - pos[3] * pos[3] / energyToK); diff --git a/Framework/MDAlgorithms/src/MDNormSCD.cpp b/Framework/MDAlgorithms/src/MDNormSCD.cpp index 2d4d6ba7423..81ef15bd60e 100644 --- a/Framework/MDAlgorithms/src/MDNormSCD.cpp +++ b/Framework/MDAlgorithms/src/MDNormSCD.cpp @@ -491,7 +491,9 @@ for (int64_t i = 0; i < ndets; i++) { // Average between two intersections for final position std::transform(curIntSec.begin(), curIntSec.begin() + vmdDims - 1, prevIntSec.begin(), pos.begin(), - VectorHelper::SimpleAverage<coord_t>()); + [](const double lhs, const double rhs) { + return static_cast<coord_t>(0.5 * (lhs + rhs)); + }); affineTrans.multiplyPoint(pos, posNew); size_t linIndex = m_normWS->getLinearIndexAtCoord(posNew.data()); if (linIndex == size_t(-1)) diff --git a/Framework/Nexus/src/NexusClasses.cpp b/Framework/Nexus/src/NexusClasses.cpp index b078e3ed2f0..e1cb32b2aa1 100644 --- a/Framework/Nexus/src/NexusClasses.cpp +++ b/Framework/Nexus/src/NexusClasses.cpp @@ -656,8 +656,8 @@ Kernel::Property *NXLog::createTimeSeries(const std::string &start_time, times.load(); std::string units = times.attributes("units"); if (units == "minutes") { - std::transform(times(), times() + times.dim0(), times(), - std::bind2nd(std::multiplies<float>(), 60)); + std::for_each(times(), times() + times.dim0(), + [](float &val) { val *= 60.0f; }); } else if (!units.empty() && units.substr(0, 6) != "second") { return nullptr; } diff --git a/buildconfig/CMake/Bootstrap.cmake b/buildconfig/CMake/Bootstrap.cmake index b011bf2ee1b..d5217b112f3 100644 --- a/buildconfig/CMake/Bootstrap.cmake +++ b/buildconfig/CMake/Bootstrap.cmake @@ -10,7 +10,7 @@ if( MSVC ) include ( ExternalProject ) set( EXTERNAL_ROOT ${PROJECT_SOURCE_DIR}/external CACHE PATH "Location to clone third party dependencies to" ) set( THIRD_PARTY_GIT_URL "https://github.com/mantidproject/thirdparty-msvc2015.git" ) - set ( THIRD_PARTY_GIT_SHA1 3a402b45d800ed0c7bb25de532e86e22fd258378 ) + set ( THIRD_PARTY_GIT_SHA1 f24928c1daf7e58a731d6e6aa7f0c4d1ee225915 ) set ( THIRD_PARTY_DIR ${EXTERNAL_ROOT}/src/ThirdParty ) # Generates a script to do the clone/update in tmp set ( _project_name ThirdParty ) -- GitLab