[Compilation] Soucis avec -pedantic
Salut
J'ai voulu compiler un exemple de "penser en C++" pour travailler un peu sur les pointeurs de fonctions. Grosse surprise sur cette exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <iostream>
using namespace std;
// A macro to define dummy functions:
#define DF(N) void N() { \
cout << "function " #N " called..." << endl; }
DF(a); DF(b); DF(c); DF(d); DF(e); DF(f); DF(g);
void (*func_table[])() = { a, b, c, d, e, f, g };
int main() {
while(1) {
cout << "press a key from 'a' to 'g' "
"or q to quit" << endl;
char c, cr;
cin.get(c); cin.get(cr); // second one for CR
if ( c == 'q' )
break; // ... out of while(1)
if ( c < 'a' || c > 'g' )
continue;
(*func_table[c - 'a'])();
}
} ///:~ |
J'utilise cette ligne de compilation :
Code:
g++ -Wall -W -ansi -pedantic FunctionTable.cpp -o FunctionTable
J'obtiens ceci comme erreurs de compilation :
Code:
1 2 3 4 5 6 7
| FunctionTable.cpp:6: erreur: extra ;
FunctionTable.cpp:6: erreur: extra ;
FunctionTable.cpp:6: erreur: extra ;
FunctionTable.cpp:6: erreur: extra ;
FunctionTable.cpp:6: erreur: extra ;
FunctionTable.cpp:6: erreur: extra ;
FunctionTable.cpp:6: erreur: extra ; |
:evilred:
J'ai bien essayé de comprendre l'erreur mais ... rien
Si j'enlève -pedantic lors de la compilation, ça passe mais ... je ne comprends pas pourquoi.
Quelqu'un pourrait-il m'éclairer ? :D