// Copyright Vladimir Prus 2004. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_ENVIRONMENT_ITERATOR_VP_2004_05_14 #define BOOST_ENVIRONMENT_ITERATOR_VP_2004_05_14 #include "eof_iterator.hpp" #include <utility> #include <string> #include <cassert> namespace boost { class environment_iterator : public eof_iterator<environment_iterator, std::pair<std::string, std::string> > { public: environment_iterator(char** environment) : m_environment(environment) { get(); } environment_iterator() { found_eof(); } void get() { if (*m_environment == 0) found_eof(); else { std::string s(*m_environment); std::string::size_type n = s.find('='); assert(n != s.npos); value().first = s.substr(0, n); value().second = s.substr(n+1); } ++m_environment; } private: char** m_environment; }; } #endif