В С++ можно перегружать операции. Нагрузить + смыслом выше крыши. Это, с одной стороны, хорошо - можно писать компактный код. С другой стороны, увеличивается степень неявности и вероятность получить 1+2=12.
Есть другой вариант - определённые пользователем операции. Выглядит это примерно так (позволю попробовать свой язык - ведь нужно ж наработывать стиль; думаю, все поймут)
фун СложитьСтрокиФункция(С - строка;остальные_аргументы(Хв) - однородный_список(строка));
  прменя Рез - строка = С, измнямя;
  цикл посписку(Сл,Хв)
    Рез = Рез -- Сл;
  кнецикл
кнецфун
  
инфиксная_операция(:имя СложитьСтроки,
                   :рлзаця СложитьСтрокиФункция,
                   :пртет "+");
печать("аффтор" СложитьСтроки " " СложитьСтроки "жжот");
Здесь «+» значит - «сделать приоритет как у операции плюс». Что не так с этим подходом и почему он не прижился?



