Preprocesor - zamiana potęgowania na mnożenie

Preprocesor - zamiana potęgowania na mnożenie
  • Rejestracja: dni
  • Ostatnio: dni
0

Jak za pomocą preprocesora zamienić potęgowanie na mnożenie.
Chodzi o to, aby preprocesor zamienił pow(x,y) na xxx*x (tyle razy ile wynosi y)

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
0

Poszukaj hasła "metaprogramowanie c++".

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Oj mam wrażenie że ktoś dostał pracę domową z programowania i liczy na darmowe gotowce...

  • Rejestracja: dni
  • Ostatnio: dni
0

Nie, proszę o wskazówkę.
Mam coś takiego na natychmiastowe wyliczanie potęg, co też mi pasi:

Kopiuj
#include<iostream>
using namespace std;


template<int  N> struct Pow3 {
  enum {val=3*Pow3<N-1>::val};
};

template<> struct Pow3<0> {
  enum {val=1};
};


template<int K,int  N> struct Pow {
  enum {val=K*Pow<K,N-1>::val};
};

template<int K> struct Pow<K,0> {
  enum {val=1};
};


main() {
  cout<< Pow3<4>::val <<endl;
  cout<< Pow<3,4>::val <<endl;
  cout<< Pow<2,8>::val <<endl;
}

ale zależałby mi aby zamieniało standardową funkcję potęgowania:
pow(x,y)

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
0

Hmmm, a zwykłe const nie wystarczy? Jak w C++ brakuje odpowiednika static z D...

  • Rejestracja: dni
  • Ostatnio: dni
0

już mam. Temat do zamknięcia

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

main() {
jakiego typu jest ten twój main?

Kopiuj
int main() {

ale zależałby mi aby zamieniało standardową funkcję potęgowania:
pow(x,y)

Kopiuj
#define pow(x,y) (Pow<x,y>::val)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.