40std::vector<T>
getenv(std::string variable,
41 std::initializer_list<T> default_value) {
43 char *env_value = std::getenv(variable.c_str());
44 if (env_value != NULL) {
45 std::stringstream ss(env_value);
46 std::vector<T> result;
49 if constexpr (std::is_integral_v<T>)
50 while (std::getline(ss, item,
','))
51 result.emplace_back(
static_cast<T
>(std::atoll(item.c_str())));
52 else if constexpr (std::is_floating_point_v<T>)
53 while (std::getline(ss, item,
','))
54 result.emplace_back(
static_cast<T
>(std::atof(item.c_str())));
56 while (std::getline(ss, item,
','))
57 result.emplace_back(
static_cast<T
>(item));
60 return std::vector<T>{default_value};