απορία C++ ( για γερούς =?iso-8859-7?b?IOv99OXy?=)
Θοδωρής Λύτρας
thlytras at gmail.com
Mon Jan 16 00:41:54 EET 2012
Στις Κυρ 15 Ιαν 2012, γράψατε:
> Στις 15 Ιανουαρίου 2012 8:14 π.μ., ο χρήστης Θοδωρής Λύτρας
> <thlytras at gmail.com> έγραψε:
> > Αυτό τελικά θα κάνω. Τώρα όμως βγαίνει κι άλλο ένα πρόβλημα. Στην δήλωση
> > της myfunction() θέλω να περάσω και ένα κενό std::vector σαν default
> > όρισμα. Δε με αφήνει όμως και μου λέει "missing template argument after
> > '('".
> >
> > Πως θα πρέπει να δηλώσω ένα κενό std::vector του τύπου myEnum??? Το Foo()
> > δε φαίνεται να δουλεύει, ούτε πολύ περισσότερο το std::vector().
>
> Σε εμένα το παρακάτω περνάει από τον μεταγλωττιστή ανενόχλητο:
>
> class A
> {
> public:
> enum myEnum {Red, Green, Blue, White, Black};
> typedef std::vector<A::myEnum> Foo;
> A();
> void myFunction(const Foo& arg=Foo());
> };
>
> Αυτό συμβαίνει ακόμα και αν η παράμετρος arg είναι απλώς Foo όπως την
> είχες. Παρεμπιπτόντως, μάλλον θα θέλεις να χρησιμοποιήσεις σταθερή
> αναφορά για να γλυτώσεις την αντιγραφή του vector...
Έχεις απόλυτο δίκιο και σ'ευχαριστώ! Ο λόγος που δε μου πέρναγε ήταν επειδή
ακριβώς χρησιμοποιούσα ήδη αναφορά, αλλά όχι σταθερή! Μόλις πρόσθεσα το const
δούλεψε.
Και πάλι ευχαριστώ,
Θοδωρής
--
"Beauty is transitory"
"Beauty survives"
- Mr. Spock & Capt. Kirk, "That which survives", stardate unknown
by Theodore Lytras <thlytras at gmail.com>
More information about the Linux-greek-users
mailing list