From 191f4496a7521062a4597bb1941b6bf43978c17c Mon Sep 17 00:00:00 2001 From: Nik Bougalis Date: Fri, 9 May 2014 10:39:58 -0700 Subject: [PATCH] Implement C++14 std::make_reverse_iterator --- Builds/VisualStudio2013/beast.vcxproj | 1 + Builds/VisualStudio2013/beast.vcxproj.filters | 3 ++ beast/cxx14/iterator.h | 45 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 beast/cxx14/iterator.h diff --git a/Builds/VisualStudio2013/beast.vcxproj b/Builds/VisualStudio2013/beast.vcxproj index 5faea2bfd..9cb743adb 100644 --- a/Builds/VisualStudio2013/beast.vcxproj +++ b/Builds/VisualStudio2013/beast.vcxproj @@ -144,6 +144,7 @@ + diff --git a/Builds/VisualStudio2013/beast.vcxproj.filters b/Builds/VisualStudio2013/beast.vcxproj.filters index 80a737e81..0f9aac355 100644 --- a/Builds/VisualStudio2013/beast.vcxproj.filters +++ b/Builds/VisualStudio2013/beast.vcxproj.filters @@ -1053,6 +1053,9 @@ beast\cxx14 + + beast\cxx14 + beast\cxx14 diff --git a/beast/cxx14/iterator.h b/beast/cxx14/iterator.h new file mode 100644 index 000000000..4d1a565c7 --- /dev/null +++ b/beast/cxx14/iterator.h @@ -0,0 +1,45 @@ +//------------------------------------------------------------------------------ +/* + This file is part of Beast: https://github.com/vinniefalco/Beast + Copyright 2013, Vinnie Falco + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ +//============================================================================== + +#ifndef BEAST_CXX14_ITERATOR_H_INCLUDED +#define BEAST_CXX14_ITERATOR_H_INCLUDED + +#include "config.h" + +#include + +#if ! BEAST_NO_CXX14_COMPATIBILITY + +namespace std { + +// C++14 implementation of std::make_reverse_iterator to allow creation of a +// reverse iterator from a given iterator. +template +inline +reverse_iterator +make_reverse_iterator(Iter i) +{ + return reverse_iterator(i); +} + +} + +#endif + +#endif