#ifndef __GBLIBCPP_BITS_ITER_OPS__ #define __GBLIBCPP_BITS_ITER_OPS__ namespace std { template constexpr auto begin(Container& c) -> decltype(c.begin()) { return c.begin(); } template constexpr auto begin(const Container& c) -> decltype(c.begin()) { return c.begin(); } template constexpr auto end(Container& c) -> decltype(c.end()) { return c.end(); } template constexpr auto end(const Container& c) -> decltype(c.end()) { return c.end(); } template constexpr auto cbegin(const Container& c) noexcept(noexcept(std::begin(c))) -> decltype(c.begin()) { return c.begin(); } template constexpr auto cend(const Container& c) noexcept(noexcept(std::end(c))) -> decltype(c.end()) { return c.end(); } } // namespace std #endif