Подтвердить что ты не робот

Экспоненциальный оператор в С++

Я беру класс на С++, и я заметил, что есть только несколько математических операторов. Я также заметил, что С++ не имеет экспоненциального оператора в своей математической библиотеке.

Почему нужно всегда писать функцию для этого? Есть ли причина, по которой разработчики С++ могут опустить этого оператора?

4b9b3361

Ответ 1

Вы не пишете функцию для этого (если, конечно, вы не сошли с ума). В заголовке <cmath> определена прекрасно работающая функция pow.

Кроме того: если вы попытаетесь использовать ^ в качестве оператора, как это делают некоторые люди, вас ждет неприятный сюрприз. Это эксклюзивный оператор (или XOR) (см. здесь).

Ответ 2

Большинство операций C с готовностью предназначено для, сопоставленных с инструкцией одного процессора, когда был изобретен C. В то время возведение в степень не было машинной инструкцией, поэтому библиотечная процедура.

Ответ 3

По словам Бьярне Страуструпа в его книге "Дизайн и эволюция С++". Они решили избежать экспоненциального оператора, потому что:

  • Оператор предоставляет нотационные удобства, но не предоставляет никаких новых функций. Члены рабочей группы, представляющие тяжелые пользователи научных/инженерных вычислений, указали, что синтаксис оператора обеспечивает незначительное синтаксическое удобство.
  • Каждый пользователь С++ должен изучить эту новую функцию.
  • Пользователи подчеркнули важность приостановки собственных специализированных функций экспоненциальности для системного дефолта, что было бы невозможно с внутренним оператором
  • Предложение недостаточно обосновано. В частности, если посмотреть на одну 30000-строчную программу Fortran, нельзя сделать вывод, что оператор будет широко использоваться в С++
  • Предложение требует добавления нового оператора и добавления другого уровня приоритета, что увеличивает сложность языка

Ответ 4

Какую платформу и какой компилятор вы используете? Мое предположение - TurboC. В основном файл cmath имеет большинство математических функций, которые рассматриваются в других компиляторах.