Просмотр исходного кода

cmAlgorithms: Add cmReverseRange adaptor.

Use it to implement list(REVERSE).
Stephen Kelly 11 лет назад
Родитель
Сommit
4afe6c26c6
2 измененных файлов с 9 добавлено и 2 удалено
  1. 8 0
      Source/cmAlgorithms.h
  2. 1 2
      Source/cmListCommand.cxx

+ 8 - 0
Source/cmAlgorithms.h

@@ -302,4 +302,12 @@ typename Range::const_iterator cmFindNot(Range const& r, T const& t)
                       std::bind1st(std::not_equal_to<T>(), t));
 }
 
+template<typename Range>
+ContainerAlgorithms::Range<typename Range::const_reverse_iterator>
+cmReverseRange(Range const& range)
+{
+  return ContainerAlgorithms::Range<typename Range::const_reverse_iterator>(
+      range.rbegin(), range.rend());
+}
+
 #endif

+ 1 - 2
Source/cmListCommand.cxx

@@ -390,8 +390,7 @@ bool cmListCommand
     return false;
     }
 
-  std::reverse(varArgsExpanded.begin(), varArgsExpanded.end());
-  std::string value = cmJoin(varArgsExpanded, ";");
+  std::string value = cmJoin(cmReverseRange(varArgsExpanded), ";");
 
   this->Makefile->AddDefinition(listName, value.c_str());
   return true;