#ifndef WANDA_ENVIRONMENT_HPP #define WANDA_ENVIRONMENT_HPP #include #include #include namespace wanda { struct environment { using map_type = std::map; using iterator = map_type::iterator; using const_iterator = map_type::const_iterator; using reference = map_type::reference; using const_reference = map_type::const_reference; explicit environment(char const * const * env = ::environ); std::string & operator[](std::string const & variable); std::string const & operator[](std::string const & variable) const; iterator begin(); const_iterator begin() const; const_iterator cbegin() const; iterator end(); const_iterator end() const; const_iterator cend() const; private: map_type m_cache{}; }; } // namespace wanda #endif