Add an emplace(...) method to llvm::Optional<T>.
[oota-llvm.git] / include / llvm / ADT / iterator_range.h
index 6248be90075225dbf0402ef3df1f9b63f77152e7..dd17d6c8f7b45ca1a6a8a0d391ebdaafe224eebe 100644 (file)
@@ -41,6 +41,13 @@ public:
   IteratorT end() const { return end_iterator; }
 };
 
+/// \brief Convenience function for iterating over sub-ranges.
+///
+/// This provides a bit of syntactic sugar to make using sub-ranges
+/// in for loops a bit easier. Analogous to std::make_pair().
+template <class T> iterator_range<T> make_range(T x, T y) {
+  return iterator_range<T>(std::move(x), std::move(y));
+}
 }
 
 #endif