Questions marquées «c++»

C ++ est un langage de programmation à usage général. Il a été initialement conçu comme une extension de C et a une syntaxe similaire, mais c'est maintenant un langage complètement différent. Utilisez cette balise pour les questions sur le code (à compiler) avec un compilateur C ++. Utilisez une balise spécifique à la version pour les questions liées à une révision standard spécifique [C ++ 11], [C ++ 14], [C ++ 17] ou [C ++ 20], etc.

1
Comment empêcher la modification des données du tableau?
Disons que j'ai une classe qui ressemble à ceci (ce n'est qu'un exemple): class A { double *ptr; public: A() : ptr( new double[100] ) {} A( const A &other ) { other.ptr[7] = 15; } void doNotChangeMyData() const { ptr[43] = 14; } void changeMyData() { ptr[43] = 14; …
9 c++  const 


2
Puis-je utiliser un allocateur personnalisé pour std :: array pour des clés cryptographiques sécurisées?
je connais std::array c'est complètement alloué dans la pile, mais cette question est motivée par des problèmes de sécurité qui nécessitent deux choses: Les données std::array seront zéros ou randomisées lors de la destruction Les données std::arrayseront verrouillées , de sorte qu'elles ne jamais stockées sur le disque ni en …

4
Du langage naturel à l'expression C ++
Affectation: Traduisez les expressions de langage naturel suivantes en expressions C ++. Supposons que toutes les variables sont des nombres non négatifs ou booléens (de valeur true ou false). Langage naturel: Soit a et b sont faux ou c est vrai, mais pas les deux. Ma solution: (a==0 && b==0)xor(c==1) …
9 c++  logic 

1
Que signifie «arrive avant»?
L'expression «survient avant» est utilisée plusieurs fois dans le projet de norme C ++. Par exemple: Résiliation [basic.start.term] / 5 Si l'achèvement de l'initialisation d'un objet avec une durée de stockage statique se produit fortement avant un appel à std :: atexit (voir, [support.start.term]), l'appel à la fonction est passé …

1
Est-il sûr pour la concurrence d'appeler concurrency :: concurrent_vector :: push_back tout en itérant sur ce concurrent_vector dans un autre thread?
push_back , begin , end sont décrits comme sûrs simultanés dans https://docs.microsoft.com/en-us/cpp/parallel/concrt/reference/concurrent-vector-class?view=vs-2019#push_back Cependant, le code ci-dessous s'affirme. Probablement parce que l'élément est ajouté mais pas encore initialisé. struct MyData { explicit MyData() { memset(arr, 0xA5, sizeof arr); } std::uint8_t arr[1024]; }; struct MyVec { concurrency::concurrent_vector<MyData> v; }; auto vector_pushback(MyVec &vec) …

3
foo (void) vs foo (void *)
Sur le plan fonctionnel et syntaxique, y a-t-il une différence entre une fonction dont le prototype est int foo(void)et int foo(void *)? Je connais la différence entre, par exemple, int bar(int)et int bar(int *)- l'un d'eux cherche un int, et l'autre cherche un pointeur int. Se voidcomporte- t-il de la …



1
Cette implémentation C ++ AtomicInt est-elle correcte?
Prémisse: je travaille avec un environnement ARM embarqué (presque bare-metal) où je n'ai même pas C ++ 11 (avec std::atomic<int>) disponible, donc veuillez éviter les réponses comme " utilisez simplement le C ++ standardstd::atomic<int> ": je ne peux pas . Cette implémentation ARM d'AtomicInt est-elle correcte? (supposons que l'architecture ARM …


3
Génération de code Lambda C ++ avec des captures Init en C ++ 14
J'essaie de comprendre / clarifier le code qui est généré lorsque les captures sont passées à lambdas, en particulier dans les captures d'initialisation généralisées ajoutées en C ++ 14. Donnez les exemples de code suivants répertoriés ci-dessous, c'est ma compréhension actuelle de ce que le compilateur va générer. Cas 1: …
9 c++  lambda  c++14  move 
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.