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