diff options
author | Marco Bubke <marco.bubke@qt.io> | 2016-11-29 12:50:18 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2016-12-07 11:40:30 +0000 |
commit | 6f362072d6cf1ce56d4d24982ae0730cd844dead (patch) | |
tree | c1e4191838caec1b4fa062b3f854d656e90cccde /src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp | |
parent | 15de02ea0c92948e1c51b5da11541c2d382b79ca (diff) | |
download | qt-creator-6f362072d6cf1ce56d4d24982ae0730cd844dead.tar.gz |
Clang: Workaround missing std::make_reverse_iterator
Because of the ancient compiler support we cannot use
std::make_reverse_iterator. If we support newer compilers we can revert
this patch.
Change-Id: I9b20ab1e53a0e9784b0455eafbbfd966797ad91e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp')
-rw-r--r-- | src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp b/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp index 2a79260349..97036695e7 100644 --- a/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp +++ b/src/tools/clangrefactoringbackend/source/sourcerangeextractor.cpp @@ -55,12 +55,20 @@ SourceRangeExtractor::SourceRangeExtractor(const clang::SourceManager &sourceMan { } +namespace { +template<typename Iterator> +std::reverse_iterator<Iterator> make_reverse_iterator(Iterator iterator) +{ + return std::reverse_iterator<Iterator>(iterator); +} +} + const char *SourceRangeExtractor::findStartOfLineInBuffer(llvm::StringRef buffer, uint startOffset) { auto beginText = buffer.begin() + startOffset; - auto reverseEnd = std::make_reverse_iterator(buffer.begin()); + auto reverseEnd = make_reverse_iterator(buffer.begin()); - auto found = std::find_if(std::make_reverse_iterator(beginText), + auto found = std::find_if(make_reverse_iterator(beginText), reverseEnd, [] (const char character) { return character == '\n' || character == '\r'; |