pointer-to-object casting και ISO C++

Giorgos Keramidas keramida at ceid.upatras.gr
Wed Mar 1 14:43:48 EET 2006


On 2006-03-01 14:37, Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
> On 2006-03-01 04:03, Eustathios Kamperis <ekamperi at auth.gr> wrote:
> > Καλημέρα σε όλους!
> >
> > Θεωρήστε το εξής κομμάτι κώδικα:
> >
> > void foo(const void *pf) {
> >   cout << "Function address: " << pf << endl;
> > }
> >
> > void tralala() {
> > }
> >
> > foo((void *) &tralala);
>
> Αυτό το κομμάτι κώδικα δεν είναι κάτι που μπορεί να το κάνει compile
> κάποιος.  Τυχαίνει να είναι αρκετό για να καταλάβω τι λες, αλλά σε
> παρακαλώ αν θες βοήθεια με κάτι πιο περίπλοκο να στέλνεις κάτι που
> μπορεί να γίνει compile, για να μπορούμε να το δοκιμάσουμε πιο εύκολα.
>
> > Αν κάνω compile με την παράμετρο -pedantic, ο compiler παραπονείται
> > για το εξής:
> >
> > "warning: ISO C++ forbids casting between pointer-to-function and
> > pointer-to-object"
> >
> > Αν παραλείψω την παράμετρο -pedantic, το πρόγραμμα μεταγλωττίζεται και
> > εκτελείται σωστά.
>
> Πολύ σωστά.  Στο C standard λέει:

[snip ένα κάρο off-topic άσχετα]

Κι εγώ πρέπει να πιώ κι άλλο καφέ.  Τώρα είδα ότι δεν είναι C αλλά C++ η
γλώσσα.




More information about the Linux-greek-users mailing list