C'est la déclaration d'une fonction prenant une liste d'arguments variable et retournant une référence à un tableau de 2 char
.
Notez que si vous définissez une fonction comme celle-ci, les paramètres sont inaccessibles (via des moyens standard) car les macros <cstdarg>
nécessitent une liste d'arguments variable pour suivre un paramètre nommé.
Si vous le souhaitez, vous pouvez définir une fonction avec cette déclaration et renvoyer une référence à la matrice appropriée. Vous pouvez l'appeler avec n'importe quel paramètre, sous réserve des restrictions pour les paramètres ...
qui incluent les restrictions que le passage de types de classes non-POD entraîne un comportement indéfini.
E.g.
namespace
{
char samplearray[2];
}
char (& test(...))[2]
{
return samplearray;
}
Que fait un espace de noms anonyme dans le code ci-dessus? –
Les variables définies dans un espace de noms anonyme ne peuvent pas être 'extern' en dehors du fichier où réside l'espace de noms. – Donotalo