/// return iterator end (needed for range-based for) iteration_proxy_internal end() noexcept { return iteration_proxy_internal(container.end()); }
/// return iterator end (needed for range-based for) iteration_proxy_value<IteratorType> end() noexcept { return iteration_proxy_value<IteratorType>(container.end()); }
/// return iterator begin (needed for range-based for) iteration_proxy_internal begin() noexcept { return iteration_proxy_internal(container.begin()); }
/// return iterator begin (needed for range-based for) iteration_proxy_value<IteratorType> begin() noexcept { return iteration_proxy_value<IteratorType>(container.begin()); }