La norme C11 semble impliquer que les instructions d'itération avec des expressions de contrôle constantes ne doivent pas être optimisées. Je prends mon conseil de cette réponse , qui cite spécifiquement la section 6.8.5 du projet de norme: Une instruction d'itération dont l'expression de contrôle n'est pas une expression constante …
J'avais l'impression que l'accès à un union membre autre que le dernier ensemble est UB, mais je n'arrive pas à trouver une référence solide (autre que des réponses affirmant que c'est UB mais sans aucun support de la norme). Alors, est-ce un comportement non défini?
Pour une raison quelconque, je me suis faufilé dans la source .NET Framework de la classe Doubleet j'ai découvert que la déclaration de ==est: public static bool operator ==(Double left, Double right) { return left == right; } La même logique s'applique à chaque opérateur. Quel est l'intérêt d'une telle …
vector<int> v; v.push_back(1); v.push_back(v[0]); Si le second push_back provoque une réallocation, la référence au premier entier du vecteur ne sera plus valide. Donc ce n'est pas sûr? vector<int> v; v.push_back(1); v.reserve(v.size() + 1); v.push_back(v[0]); Cela le rend sûr?
auto foo = "You're using g++!"; auto compiler_detector = [foo](auto foo) { std::puts(foo); }; compiler_detector("You're using clang++!"); clang ++ 3.6.0 et plus récent imprimer "Vous utilisez clang ++!" et avertir que la capture foo n'est pas utilisée. g ++ 4.9.0 et plus récent imprimer "Vous utilisez g ++!" et avertir …
Considérez ce programme assez inutile: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } Fondamentalement, nous essayons de faire un lambda qui se retourne. …
J'apprends actuellement le C ++ avec le livre C ++ Primer et l'un des exercices du livre est: Expliquez ce que fait l'expression suivante: someValue ? ++x, ++y : --x, --y Que savons-nous? Nous savons que l'opérateur ternaire a une priorité plus élevée que l'opérateur virgule. Avec les opérateurs binaires, …
Comme suivi intéressant (pas d'une grande importance pratique cependant) à ma question précédente: Pourquoi C ++ nous permet-il d'entourer le nom de la variable entre parenthèses lors de la déclaration d'une variable? J'ai découvert que la combinaison de la déclaration entre parenthèses avec la fonction de nom de classe injectée …
C est un peu, pas exactement, un sous-ensemble de C ++. Nous pouvons donc utiliser la plupart des fonctions / en-têtes C en C ++ en changeant un peu le nom ( stdio.hto cstdio, stdlib.hto cstdlib). Ma question est en fait un peu sémantique. En code C ++ (en utilisant …
Quelqu'un peut-il donner une définition claire avec un exemple simple qui explique ce qu'est un "enfer de rappel" pour quelqu'un qui ne connaît pas JavaScript et node.js? Quand (dans quel type de paramètres) le "problème de l'enfer du rappel" se produit-il? Pourquoi cela se produit-il? L '"enfer de rappel" est-il …
Une question un peu étrange, cependant, si je me souviens bien, le code source C ++ ne nécessite pas de système de fichiers pour stocker ses fichiers. Avoir un compilateur qui scanne les papiers manuscrits via une caméra serait une implémentation conforme. Bien que cela n'ait pratiquement pas beaucoup de …
En langage C, si initialisez un tableau comme celui-ci: int a[5] = {1,2}; alors tous les éléments du tableau qui ne sont pas initialisés explicitement seront initialisés implicitement avec des zéros. Mais, si j'initialise un tableau comme celui-ci: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); production: …
Ce morceau de code est-il valide (et comportement défini)? int &nullReference = *(int*)0; Les deux g ++ et ++ clang compilation sans aucun avertissement, même lors de l' utilisation -Wall, -Wextra, -std=c++98, -pedantic, -Weffc++... Bien sûr, la référence n'est pas réellement nulle, puisqu'elle n'est pas accessible (cela signifierait déréférencer un …
Je suis nouveau en C ++. Je vois souvent une déclaration conditionnelle comme ci-dessous: if statement_0; else if statement_1; Question: Syntaxiquement , dois-je traiter else ifcomme un mot clé unique? Ou est-ce en fait une ifinstruction imbriquée dans l'extérieur elsecomme ci-dessous? if statement_0; else if statement_1;
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.