Nejasnost rozlišení
Chcete-li provést explicitní převody z jednoho typu na jiný, musíte použít nádech, název požadovaného typu.Některé syntaktické nejednoznačnosti zadejte výsledek nádech.Následující typ cast funkce styl je dvojznačný:
char *aName( String( s ) );
Nejasné, zda je funkce prohlášení nebo prohlášení objektu pomocí funkce stylu nádech jako inicializátoru: ji nelze deklarovat funkci vrácení typu char * , která má jeden argument typu String, nebo ji nelze deklarovat objekt aName a inicializace s hodnotou s cast zadejte String.
Jestliže prohlášení lze považovat za platnou funkci prohlášení, se zachází jako takové.Pouze v případě, že nemůže být případně deklarace funkce –, pokud je syntakticky nesprávný – prohlášení zkoumáno zobrazit, pokud je typ osazení stylu funkce.Proto kompilátor považuje prohlášení se prohlášení o funkci a ignoruje závorek identifikátor s.Na druhé straně, příkazy:
char *aName( (String)s );
and
char *aName = String( s );
jsou jasně prohlášení objektů a uživatelem definovaný převod z typu String k zadání char * je možné provést inicializaci aName.