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