Browse Source

Avoid using std::bind1st that is removed in C++17

Use a lambda instead now that we require C++11.
Brad King 8 years ago
parent
commit
44d3a76d4a
2 changed files with 2 additions and 4 deletions
  1. 1 2
      Source/cmAlgorithms.h
  2. 1 2
      Source/cmLocalUnixMakefileGenerator3.cxx

+ 1 - 2
Source/cmAlgorithms.h

@@ -370,8 +370,7 @@ std::string cmWrap(char prefix, Range const& r, char suffix,
 template <typename Range, typename T>
 typename Range::const_iterator cmFindNot(Range const& r, T const& t)
 {
-  return std::find_if(r.begin(), r.end(),
-                      std::bind1st(std::not_equal_to<T>(), t));
+  return std::find_if(r.begin(), r.end(), [&t](T const& i) { return i != t; });
 }
 
 template <typename Range>

+ 1 - 2
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -5,7 +5,6 @@
 #include "cmsys/FStream.hxx"
 #include "cmsys/Terminal.h"
 #include <algorithm>
-#include <functional>
 #include <sstream>
 #include <stdio.h>
 #include <utility>
@@ -2073,7 +2072,7 @@ void cmLocalUnixMakefileGenerator3::CreateCDCommand(
     std::string outputForExisting = this->ConvertToOutputForExisting(tgtDir);
     std::string prefix = cd_cmd + outputForExisting + " && ";
     std::transform(commands.begin(), commands.end(), commands.begin(),
-                   std::bind1st(std::plus<std::string>(), prefix));
+                   [&prefix](std::string const& s) { return prefix + s; });
   }
 }