g4tools  5.4.0
get_env
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_get_env
5 #define tools_get_env
6 
7 #include <cstdlib>
8 
9 #include "sto"
10 
11 namespace tools {
12 
13 inline bool is_env(const std::string& a_string){
14  const char* env = ::getenv(a_string.c_str());
15  return (env?true:false);
16 }
17 
18 inline bool get_env(const std::string& a_string,std::string& a_value){
19  const char* env = ::getenv(a_string.c_str());
20  if(env) {
21  a_value = std::string(env?env:"");
22  return true;
23  } else {
24  a_value.clear();
25  return false;
26  }
27 }
28 
29 template <class T>
30 inline bool get_env(const std::string& a_string,T& a_v,const T& a_def = T()){
31  std::string s;
32  if(!get_env(a_string,s)) {a_v = a_def;return false;}
33  return to<T>(s,a_v,a_def);
34 }
35 
36 inline bool get_env_bool(const std::string& a_string,bool& a_v){
37  std::string s;
38  if(!get_env(a_string,s)) return false;
39  return to(s,a_v);
40 }
41 
42 }
43 
44 #endif
tools::get_env
bool get_env(const std::string &a_string, std::string &a_value)
Definition: get_env:18
sto
tools::is_env
bool is_env(const std::string &a_string)
Definition: get_env:13
tools::to
std::vector< std::string > to(int a_argc, char **a_argv)
Definition: args:507
tools::get_env_bool
bool get_env_bool(const std::string &a_string, bool &a_v)
Definition: get_env:36
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26