Preprocesor - zamiana potęgowania na mnożenie

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)

0

Poszukaj hasła "metaprogramowanie c++".

0

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

0

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

#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)

0

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

0

już mam. Temat do zamknięcia

0

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

int main() {

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1