Каким это образом алгоритм вывода не даёт инициализировать данные?
Это вообще разные задачи. Можно инициализировать и вообще не
использовать ни в каком алгоритме, если захочется. Плюсы тут
помогают тем, что имеют механизм вычислений на этапе крмпиляции. Да
и код меньше, понятнее и ошибкоустойчивей получается.