Wysłałem maila kilka dni temu ze wskazówkami jak pominąć gettext.
Dzięki, po poprawkach które podałeś działa ;)
Testujesz na Windowsie czy na Linuksie?
Windows, XP konkretnie.
Co do samego programu, to o ile przykłady tłumaczy całkiem nieźle, chociaż mam pewne zastrzeżenia:
Po 1 - dając 'using namespace std;' w nagłówku zaśmiecasz globalną przestrzeń nazw w każdym pliku, który go dołącza. IMHO nie jest to najlepszy pomysł ;)
Po 2 - w kodzie czasem pojawiają się nie wiadomo po co utworzone zmienne tymczasowe. Np. w
// wynik tłumaczenia fib.py
#include "fib.h"
void fib( float n )
{
int a, b, __1;
a = 0; b = 1;
while ( b < n )
{
__1 = b; b = (a + b);
a = __1;
cout << a << endl;
}
}
int main( int argc, char **argv )
{
fib( 100 );
fib( 1.2 );
return 0;
}
zmienna __1 jest zupełnie niepotrzebna ;)
Po 3 - co do powyższego przykładu - to formatowanie mnie troszkę przeraża :) Nie jest to jakiś straszny problem, ale jeśli kod ma się nadawać do czytania i poprawiania po tłumaczeniu, to... ;)
Po 4 - czy w wypadku wywoływania jednej funkcji z argumentami różnych typów, zamiast tworzyć wersję z typem najbardziej 'pojemnym' nie lepiej by było ją przeciążać, albo nawet i zrobić z niej szablon?
No i jak próbowałem przetłumaczyć mój kod (trochę za długie, żeby na forum umieszczać, jak chcesz to mogę ci na maila podesłać. Jakby co: zawiera jedną klasę - implementacje drzewa - z jedną klasą zagnieżdżoną Node i metodami do najważniejszych operacji), to python przy interpretowaniu p2cpp w 1240 linii pliku parser.py
for It in self.Functions[self.CurrentFunc-1]['temp']:
(dochodzi do tego z linii 116 pliku p2cpp.py, 'compiler.walk(code, parser)') wywala list index out of range.
W pythonie jestem niestety trochę za cienki bolek (może jakby to w cpp było... ;)), żeby choćby i próbować szukać w twoim kodzie przyczyny tego błędu (lub też czemu mój kod nie nadaje się do tłumaczenia przez program, jakby co żadnych zewnętrznych - nawet i standardowych - modułów nie użyłem ;)), więc tylko informuję ;)