Re: απορία C++ ( για γερούς λύτες)

Nikos Platis nplatis at gmail.com
Sun Jan 15 10:54:23 EET 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...



More information about the Linux-greek-users mailing list