web-dev-qa-db-ja.com

C ++の指数演算子

私はC++でクラスを取得していますが、使用する数学演算子がわずかしかないことに気付きました。また、C++の数学ライブラリには指数演算子が付属していないことにも気付きました。

なぜこれのために常に関数を書かなければならないのですか? C++のメーカーがこの演算子を省略する理由はありますか?

22
James Hayek

あなたはこれのために関数を書いてはいけません(もちろん、あなたが正気でない限り)。 <cmath>ヘッダーに 完全に優れたpow関数 が定義されています。

余談:パワー演算子として^を使用しようとすると、一部の人はそうしないので、厄介な驚き。これは排他的論理和(XOR)演算子です( here を参照)。

55
paxdiablo

ほとんどのC操作 することを目的と Cが発明されたときに単一のプロセッサ命令にマップされました。当時、べき乗は機械語命令ではなかったため、ライブラリルーチンでした。

9
msw

彼の本のBjarne StroustrupによるとC++の設計と進化。彼らは次の理由で指数演算子を避けることに決めました:

  • 演算子は表記上の便宜を提供しますが、新しい機能は提供しません。科学/工学計算のヘビーユーザーを代表するワーキンググループのメンバーは、演算子の構文は構文上の小さな便宜を提供することを示しました。
  • C++のすべてのユーザーはこの新機能を学ぶ必要があります
  • ユーザーは、システムのデフォルトに独自の指数関数を使用することの重要性を強調しています。これは、組み込みのオペレーターでは不可能です。
  • 提案は十分に動機付けされていません。特に、1行の30000行のFortranプログラムを見ても、演算子がC++で広く使用されていると結論付けることはできません。
  • この提案では、新しい演算子を追加し、別の優先レベルを追加する必要があるため、言語の複雑さが増します。
7
PixelsTech