int main() { std::vector<int> vec {1,2,3,4,5,6,7,8,9}; for (auto v : powerset(vec)) { for (auto i : v) std::cout << i << " "; std::cout << std::endl; } std::cout << "with temporary\n"; for (auto v : powerset(std::vector<int>{1,2,3})) { for (auto i : v) std::cout << i << " "; std::cout << std::endl; } std::cout << "with initializer_list\n"; for (auto v : powerset({1,2,3})) { for (auto i : v) std::cout << i << " "; std::cout << std::endl; } #if 0 #endif return 0; }