Экспоненциальный оператор в C ++ - PullRequest
20 голосов
/ 23 сентября 2010

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

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

Ответы [ 4 ]

50 голосов
/ 23 сентября 2010

Вы не пишите функцию для этого (если, конечно, вы не сошли с ума).* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.оператор, как это делают некоторые люди, вас ждет неприятный сюрприз.Это оператор с исключительными или (XOR) (см. здесь ).

9 голосов
/ 23 сентября 2010

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

7 голосов
/ 26 июня 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...