Перегрузка операторов не приводит к снижению производительности программы по сравнению с любой другой функцией. 2
Это объясняется тем, что перегрузка оператора просто приводит к вызову функции, и для выполнения этой работы всё равно пришлось бы написать функцию. 2 Кроме того, перегруженные операторы могут быть встроены, что устраняет любые накладные расходы на вызов функции. 2
Однако перегрузка операторов может создавать проблемы в отладке, так как создаёт трудности в понимании и анализе программы. 14 Например, если тип значения, к которому будет применяться перегруженная операция, неизвестен на момент трансляции кода, компилятор лишается возможности выбрать нужный вариант заранее. 1 В этой ситуации он вынужден встраивать в объектный код фрагмент, который непосредственно перед выполнением операции определит типы находящихся в аргументах значений и динамически выберет вариант, соответствующий этому набору типов. 1