Sto utilizzando Visual Studio 2012 (ma utilizzando gli strumenti di compilazione VC++ 2010) e ho queste due funzioni sovraccaricate (firme in basso) definite in una classe che successivamente chiamerò in un'altra di classe che crea un'istanza della prima classe (anche sotto):Visual C++ 2010 accetta la stringa per bool in funzione sovraccaricata
Defined in the class:
Node CreateNode(Node *parent,string name,string node_text,bool expects_node = true);
Node CreateNode(Node *parent,string name, string attribute, string value,bool expects_node = true)
Calling these functions in the macro:
Node axis1 = handler->CreateNode(&sparse,"axis","id","trigger_pt");
Quando faccio la chiamata di funzione, si chiama la prima funzione, non la seconda! Quindi tratta la seconda stringa come un booleano! Tuttavia, quando aggiungo "true" alla chiamata di funzione, chiama la seconda funzione come previsto. Qualcuno può spiegarlo? Grazie!
Oppure aggiungere un terzo sovraccarico che accetta un 'const char *', per renderlo automatico. – GManNickG
A volte desidero parametri espliciti ... 'void f (esplic const bool b);'. Forse con C++ 2100? BTW: trova la sequenza di conversione completa [qui] (http://stackoverflow.com/a/15032114/2073257). –
@GManNickG Grazie, l'ho aggiunto. –