Rakovskiy, на твой пост (27.01.2015 / 01:12) отвечу, что и перегрузка, и шаблонная функция у тебя кривая. Хреново вас в универе учат.
Koenig, C++ — язык со строгой типизацией, и ты должен к каждой переменной указывать тип.
В PHP / Python / Ruby этого нет, потому что это языки с динамической типизацией, все типы вычисляются в рантайме. Так в некотором роде проще.
В C++ ты должен будешь написать свой контейнер (структуру данных, например список, словарь, итд) для каждого типа. Для строк, для integer, и других. Потому что этот тип явно прописывается в коде.
Чтобы не было много дублирующего кода, Страуструп ввел обобщенное программирование, они же шаблоны, они же обобщения/generics. Суть в том, что ты вместо какого-то одного типа указываешь шаблонный. И когда нужно скомпилировать программу, этот шаблонный тип заменяется на нужный.
В PHP это все излишне, здесь нет привязки к типам. Даже не знаю, почему речь об этом пошла.