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)
Preprocesor - zamiana potęgowania na mnożenie
- Rejestracja: dni
- Ostatnio: dni
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: XML Hills
0
Poszukaj hasła "metaprogramowanie c++".
- 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:
#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)
- 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
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)