Articles of typedef

Est-ce que «typedef» est entre le type et l’alias conforme à la norme?

Je suis tombé sur un code où le mot-clé typedef est entre le type et le nom d’alias comme dans int typedef INT; Il comstack en gcc et clang ( exemple live ). Je ne suis pas très bon pour comprendre standardese. Donc, ma question est: est-ce que cette norme est conforme? Puis-je compter sur […]

Pourquoi dois-je utiliser typedef typename dans g ++ mais pas VS?

Cela faisait un moment que GCC ne m’avait pas attrapé avec celui-ci, mais c’est arrivé aujourd’hui. Mais je n’ai jamais compris pourquoi GCC requirejs typedef typename dans les templates, alors que VS et ICC ne le font pas. Est-ce que la chose typedef typename est un “bug” ou un standard excessif, ou quelque chose qui […]

Polymorphisme statique C ++ (CRTP) et utilisation de typedefs à partir de classes dérivées

J’ai lu l’article de Wikipedia sur le modèle de modèle curieusement récurrent en C ++ pour faire du polymorphism statique (lecture: compilation). Je voulais le généraliser pour pouvoir changer les types de retour des fonctions en fonction du type dérivé. (Cela semble être possible car le type de base connaît le type dérivé du paramètre […]

Propagation de ‘typedef’ à partir d’une classe dérivée pour ‘template’

J’essaie de définir la classe de base, qui contient uniquement des typedef. template class A { public: typedef std::vector Vec_t; }; template class B : public A { private: Vec_t v; // fails – Vec_t is not recognized }; Pourquoi dans BI recevoir une erreur que Vec_t n’est pas reconnu et je dois l’écrire explicitement? […]

Meilleures pratiques du fichier d’en-tête pour les typedefs

J’utilise largement les fichiers shared_ptr et STL dans un projet, ce qui conduit à des types trop longs, sujets aux erreurs, comme shared_ptr< vector< shared_ptr > > >> (je suis un programmeur ObjC de préférence, où les noms longs Je pense que c’est bien d’appeler cela FooListPtr et de documenter la convention de dénomination selon […]

Typedef inhabituel utilisation en C ++

Je suis tombé sur une nouvelle utilisation du mot-clé typedef en C ++. Que signifie cette déclaration typedef? int typedef foo;

utilisation invalide de type incomplet

J’essaie d’utiliser un typedef d’une sous-classe dans mon projet, j’ai isolé mon problème dans l’exemple ci-dessous. Est-ce que quelqu’un sait où je vais mal? template class A { public: //Why doesn’t it like this? void action(typename Subclass::mytype var) { (static_cast(this))->do_action(var); } }; class B : public A { public: typedef int mytype; B() {} void […]

Pointeur de déréférencement sur le type incomplet

J’ai vu beaucoup de questions à ce sujet mais je vais poser la question différemment sans code spécifique. Existe-t-il un moyen de déterminer facilement ce qui rend le type incomplet? Dans mon cas, j’utilise le code de quelqu’un d’autre et je suis tout à fait sûr de ne pas avoir les en-têtes corrects, mais (puisque […]

Enum de déclaration en avant dans Objective-C

J’ai de la difficulté avec la visibilité enum dans un programme Objective-C. J’ai deux fichiers d’en-tête et un définit un typedef enum . Un autre fichier doit utiliser le type typedef ‘d. Dans straight C, je voudrais simplement #include l’autre fichier d’en-tête, mais dans Objective-C, il est recommandé de ne pas utiliser #import entre les […]

Destructeurs de types intégrés (int, char, etc.)

En C ++, le code suivant donne une erreur de compilation: void destruct1 (int * item) { item->~int(); } Ce code est à peu près le même, je saisis simplement l’int en un autre type et quelque chose de magique se produit: typedef int myint; void destruct2 (myint * item) { item->~myint(); } Pourquoi le […]