From b7ecbd55d6592eceac7e5e1c53f041fda320db0d Mon Sep 17 00:00:00 2001 From: Martyn Gigg <martyn.gigg@stfc.ac.uk> Date: Wed, 20 Aug 2014 11:42:02 +0100 Subject: [PATCH] Fix ambiguous overload error with boost 1.53 Refs #9349 --- .../Framework/Algorithms/src/CalculateTransmission.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp b/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp index ae463d57def..6f35de92151 100644 --- a/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp +++ b/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp @@ -233,9 +233,16 @@ API::MatrixWorkspace_sptr CalculateTransmission::extractSpectra(API::MatrixWorks { // Compile a comma separated list of indices that we can pass to SumSpectra. std::vector<std::string> indexStrings(indices.size()); + // A bug in boost 1.53: https://svn.boost.org/trac/boost/ticket/7421 + // means that lexical_cast cannot be used directly as the call is ambiguous + // so we need to define a function pointer that can resolve the overloaded + // lexical_cast function + typedef std::string (*from_size_t)(const size_t &); + std::transform( indices.begin(), indices.end(), - indexStrings.begin(), boost::lexical_cast<std::string, size_t>); + indexStrings.begin(), + (from_size_t)boost::lexical_cast<std::string, size_t>); const std::string commaIndexList = boost::algorithm::join(indexStrings, ","); double start = m_done; -- GitLab