diff options
Diffstat (limited to 'include/estd/ReverseAdaptor.hpp')
-rw-r--r-- | include/estd/ReverseAdaptor.hpp | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/include/estd/ReverseAdaptor.hpp b/include/estd/ReverseAdaptor.hpp deleted file mode 100644 index 6738cac..0000000 --- a/include/estd/ReverseAdaptor.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/** - * \file - * \brief ReverseAdaptor template class header. - * - * \author Copyright (C) 2014-2015 Kamil Szczygiel http://www.distortec.com http://www.freddiechopin.info - * - * \par License - * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not - * distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef ESTD_REVERSEADAPTOR_HPP_ -#define ESTD_REVERSEADAPTOR_HPP_ - -namespace estd -{ - -/** - * \brief ReverseAdaptor template class is an adaptor that "reverses" access to the container - * - * \tparam T is the type of container - */ - -template<typename T> -class ReverseAdaptor -{ -public: - - /** - * \brief ReverseAdaptor's constructor. - * - * \param [in] container is a reference to container - */ - - constexpr explicit ReverseAdaptor(T& container) noexcept : - container_{container} - { - - } - - /** - * \return reverse_iterator to the beginning of "reversed" container (last element of original container) - */ - - typename T::reverse_iterator begin() const noexcept - { - return container_.rbegin(); - } - - /** - * \return reverse_iterator to the end of "reversed" container (before-the-first element of original container) - */ - - typename T::reverse_iterator end() const noexcept - { - return container_.rend(); - } - -private: - - /// reference to container - T& container_; -}; - -/** - * \brief Helper factory function to make ReverseAdaptor object with deduced template arguments - * - * \tparam T is the type of container - * - * \param [in] container is a reference to container - * - * \return ReverseAdaptor object - */ - -template<typename T> -ReverseAdaptor<T> makeReverseAdaptor(T& container) -{ - return ReverseAdaptor<T>{container}; -} - -} // namespace estd - -#endif // ESTD_REVERSEADAPTOR_HPP_ |