Les différentes significations de parenthèses en C++?

Je suis un peu confus withnthe interprétation de parenthèses par le compilateur. Certains ont-ils un s'il vous plaît expliquer ce qui se passe réellement dans de tels contextes?

Casting: (int)a ou int(a)

Passage de paramètres:

template <typename t>
int size(t (&)[n]){return n;}

Évidemment, il pourrait y avoir de nombreux contextes différents où les parenthèses de modifier le sens ou l'interprétation. Certains ont-ils un s'il vous plaît expliquer ce exaactly qui se passe derrière le rideau? Comment le compilateur de savoir comment interpréter dans chaque contexte? Est-il un principe général ou est-ce une règle spécifique pour chaque cas?

Grâce

Crochets < et > ne sont pas entre parenthèses.
Vrai. Je ne suis pas en se référant à eux comme des parenthèses ici. Merci pour le modifier.

OriginalL'auteur Kiran | 2011-02-19