Articles of c ++ faq

Restreindre les arguments des modèles variadiques

Peut-on restreindre les arguments des modèles variadiques à un certain type? Ie, réaliser quelque chose comme ça (pas de C ++ réel bien sûr): struct X {}; auto foo(X… args) Ici, mon intention est d’avoir une fonction qui accepte un nombre variable de parameters X Le plus proche est celui-ci: template auto foo(Args… args) mais […]

Pourquoi une classe de modèle dérivée n’a-t-elle pas access aux identificateurs d’une classe de modèle de base?

Considérer: template class Base { public: static const bool ZEROFILL = true; static const bool NO_ZEROFILL = false; } template class Derived : public Base { public: Derived( bool initZero = NO_ZEROFILL ); // NO_ZEROFILL is not visible ~Derived(); } Je ne suis pas capable de comstackr ceci avec GCC g ++ 3.4.4 (cygwin). Avant […]

Dois-je inclure ou dans les programmes C ++?

Que dois-je inclure dans les programmes C ++, stdio.h ou cstdio ? et pourquoi? Pourquoi deux fichiers d’en-tête offrant les mêmes fonctionnalités? Que dit la norme à ce sujet? Comment dois-je inclure d’autres en-têtes de ce type? Existe-t-il une règle de base que je devrais suivre?

Est-il possible d’empêcher l’allocation de stack d’un object et de ne permettre son instanciation qu’avec «new»?

Est-il possible d’empêcher l’allocation de stack d’un object et de ne permettre son instanciation qu’avec «new» sur le tas?

Pourquoi avons-nous réellement besoin de l’inheritance privé ou protégé en C ++?

En C ++, je ne peux pas penser à un cas dans lequel j’aimerais hériter de private / protected depuis une classe de base: class Base; class Derived1 : private Base; class Derived2 : protected Base; Est-ce vraiment utile?

Quelles sont toutes les fonctions membres créées par le compilateur pour une classe? Est-ce que ça arrive tout le temps?

Quelles sont toutes les fonctions membres créées par le compilateur pour une classe? Est-ce que ça arrive tout le temps? comme destructeur. Mon souci est de savoir s’il est créé pour toutes les classes et pourquoi le constructeur par défaut est-il nécessaire?

Que se passe-t-il lorsqu’une exception n’est pas gérée dans un programme C ++ 11 multithread?

Si j’ai un programme C ++ 11 qui exécute deux threads et que l’un d’eux lance une exception non gérée, que se passe-t-il? Le programme entier mourra-t-il d’une mort ardente? Est-ce que le thread où l’exception est lancée mourra seul (et si oui, puis-je obtenir l’exception dans ce cas)? Quelque chose d’autre entièrement?

Comment améliorer IOStream?

La plupart des utilisateurs de C ++ qui ont appris C préfèrent utiliser la famille de fonctions printf / scanf même lorsqu’ils codent en C ++. Bien que j’admette que je trouve l’interface beaucoup mieux (en particulier le format et la localisation de type POSIX), il semble qu’une préoccupation majeure est la performance. En regardant […]

Quels sont les guides de déduction des modèles et quand les utiliser?

La norme C ++ 17 introduit des “guides de déduction de modèles”. Je suppose qu’ils ont quelque chose à voir avec la nouvelle déduction d’argument de modèle pour les constructeurs introduite dans cette version du standard, mais je n’ai pas encore vu d’explication simple, de style FAQ, sur ce qu’ils sont et ce qu’ils sont […]

Comment est-ce que je devrais écrire les opérateurs et les opérateurs de suppression conformes à la norme ISO C ++ Standard?

Comment est-ce que je devrais écrire les opérateurs et delete opérateurs de delete conformes à la norme ISO C ++? Cela fait suite à la surcharge de nouveau et à la suppression dans la FAQ C ++ immensément éclairante, à la surcharge d’opérateur et à son suivi. Pourquoi remplacer les opérateurs new et delete par […]