Function get_environment_variable
Synopsis
#include "breeze/environment/get_environment_variable.hpp"
maybe< std::string > get_environment_variable(std::string const &name)
Description
Searches an implementation-defined list, as if by calling std::getenv()
, for a string that matches name
and returns the associated value, if any.
We emphasize that the 'as if' above is part of this function's contract.
This function overcomes three usability issues of std::getenv()
:
- const unsafety:
getenv()
returns a pointer to (non-const) char (which the program shall not modify) - subsequent calls to
getenv()
may overwrite the pointed to string - if the searched to string is not found
getenv()
returns a null pointer; that can easily lead to undefined behavior, if that value is passed to one of the constructors ofstd::string
which take achar const *
- Returns
- The value associated to the given
name
, or an invalidmaybe
if there is none. - Note
- The behavior on passing an empty string for the
name
parameter is implementation-defined: please check the documentation provided with your C++ implementation.
Source
Line 56 in breeze/environment/get_environment_variable.hpp.