48std::vector<T>
getenv(std::string variable,
49 std::initializer_list<T> default_value) {
51 char *env_value = std::getenv(variable.c_str());
52 if (env_value !=
nullptr) {
53 std::stringstream ss(env_value);
54 std::vector<T> result;
57 if constexpr (std::is_integral_v<T>)
58 while (std::getline(ss, item,
','))
59 result.emplace_back(
static_cast<T
>(std::atoll(item.c_str())));
60 else if constexpr (std::is_floating_point_v<T>)
61 while (std::getline(ss, item,
','))
62 result.emplace_back(
static_cast<T
>(std::atof(item.c_str())));
64 while (std::getline(ss, item,
','))
65 result.emplace_back(
static_cast<T
>(item));
68 return std::vector<T>{default_value};