@Acaunt

Насколько хорошая практика использовать обертки над операторами?

Недавно мне понадобилось создать функции для сложения, вычитания, умножения и деления двух массивов одинаково размера. Я написал эти функции синтаксис у них был почти одинаковый, единственное отличие было в операторе. Тут я подумал возможно ли передать оператор как параметр в функцию.

После поиска я узнал что в <functional> имеются структуры обёртки над этими операторами. Использовав их у меня сократился объём кода, что впринципе сделало его красивее в каком-то смысле.

У меня имеются следующей вопросы: "Насколько хорошая практика использовать эти обертки? И какие могут быть минусы от их использования?"
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
В библиотечных функциях - можно так сделать. В смысле, ваши функции используют непубличную функцию, передавая ей оператор.

Но вы этот оператор передаете всего в нескольких местах на всю кодовую базу и все. Писать так функции, которые вы используете кучу раз - очень плохая идея.

И вообще, довольно редко есть смысл так заморачиваться. Код становиться хуже поддерживаемый. Экономите вы совсем чуть чуть повторяемого кода. А потом придется всякие заморочки делать, вроде, в делении надо проверять на 0, а в умножении проверять на переполнение и т.д. Этот общий код становиться уже чуть ли не длиннее если все по отдельности делать. И уж точно хуже читаемый.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы