Я создаю библиотеку, которая будет иметь концепцию подобного типа python. C не имеет никакого силового оператора, например python (**
) (например, pow(x,n)
эквивалентно x**n
в python).
Я попытался решить эту проблему, используя директиву Pre-Processor. но не нашел никакого трюка.
Поскольку ^ этот оператор для операции XOR, поэтому я думаю, что он не может быть использован для оператора мощности (можем ли мы?)
поэтому альтернативное решение является двойной звездой (**
), потому что **
является непризнанным оператором для компилятора, поэтому как мы можем сделать это известным компилятору.
предлагайте подход или решение для этого.
Вы не можете добавить новых операторов в C++, поэтому использование **
(или какой-либо другой новой вещи) отсутствует. Кроме того, вы не можете перегружать операторы, когда обе стороны являются встроенными типами, поэтому использование существующего оператора (например, ^
) для реализации создания float/ints для полномочий, которые являются float/ints, также отсутствует. См. Этот вопрос в FAQ Stroustrup C++ (как упоминается в комментариях ниже).
Вы можете реализовать свой собственный числовой класс и перегрузить любого оператора, которого вы хотите для него, но это будет нелегко, и это будет не так "элегантно" или круто, как вы думаете.
Итак, просто используйте функцию.
**
оператора степени
pow
. У Python тоже есть функцияpow
.