#include <functional>
#include <iostream>
#include <vector>

int main()
{
	std::vector<std::function<char()>> izvrat = { []()->char {return 0x48; },
		[]()->char {return 0x65; },
		[]()->char {return 0x6c; },
		[]()->char {return 0x6c; },
		[]()->char {return 0x6f; },
		[]()->char {return 0x20; },
		[]()->char {return 0x77; },
		[]()->char {return 0x6f; },
		[]()->char {return 0x72; },
		[]()->char {return 0x6c; },
		[]()->char {return 0x64; },
		[]()->char {return 0x21; } };

	std::function<void(std::vector<std::function<char()>>::const_iterator, std::vector<std::function<char()>>::const_iterator)> f =
		[&](std::vector<std::function<char()>>::const_iterator vecizvrat, std::vector<std::function<char()>>::const_iterator end)
	{
		if (vecizvrat != end)
		{
			[](char c, auto && ss) { ss << c; }((*vecizvrat)(), std::cout);
			f(vecizvrat + 1, end);
		}
	};

	f(izvrat.cbegin(), izvrat.cend());

	return 0;
}
