Why doesn’t C++ have a power operator? [closed]

C++ does have a power operator—it’s written pow(x, y).

Originally, C was designed with system software in mind, and
there wasn’t much need for a power operator. (But it has
bitwise operators, like & and |, which are absent in a lot
of other languages.) There was some discussion of adding one
during standardization of C++, but the final consensus was more
or less:

  • It couldn’t be ^, because the priority was wrong (and of
    course, having 2. ^ 8 == 256., but 2 ^ 8 == 10 isn’t very
    pleasant either).

  • It couldn’t be **, because that would break existing
    programs (which might have something like x**p, with x an
    int, and p an int*).

  • It could be *^, because this sequence isn’t currently legal
    in C or C++. But this would still require introducing an
    additional level of precedence.

  • C and C++ already had enough special tokens and levels of
    precedence, and after discussions with the numerics community,
    it was concluded that there really wasn’t anything wrong with
    pow(x, y).

So C++ left things as they were, and this doesn’t seem to have
caused any problems.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)