Как пояснил Jarod42, {"foo", "bar", "baz"}
не имеет типа, поэтому его нельзя вывести для template <typename Container> Foo (const Container&)
.
Другое возможное решение -
template <typename T, std::size_t N>
Foo (T const (& arr)[N])
{
for (auto arg : arr)
std::cout << "ARG(" << arg << ")\n";
}
поэтому {"foo", "bar", "baz"}
выводится как список инициализации для массива в стиле C с правильным размером (3).