printauto.hpp

The following code example is taken from the book
C++17 - The Complete Guide by Nicolai M. Josuttis, Leanpub, 2017
The code is licensed under a Creative Commons Attribution 4.0 International License. Creative Commons License


#include <iostream>

template<auto Sep = ' ', typename First, typename... Args>
void print(const First& first, const Args&... args) {
  std::cout << first;
  auto outWithSpace = [](const auto& arg) {
                        std::cout << Sep << arg;
                      };
  (... , outWithSpace(args));
  std::cout << '\n';
}