J'essaie de comprendre les types d'expression de C ++ et plus je lis, plus je suis confus, car je trouve le brouillon C ++ très difficile à digérer et préfère donc d'autres ressources mais elles se contredisent ou ne tiennent pas compte du fait que le la formulation et la …
Je suis tombé sur ces déclarations: resize(n)- Redimensionne le conteneur pour qu'il contienne des éléments «n». shrink_to_fit()- Réduit la capacité du conteneur à s'adapter à sa taille et détruit tous les éléments au-delà de la capacité. Y a-t-il une différence significative entre ces fonctions? ils relèvent de vecteurs en c …
Je connais les fonctions générées par le compilateur, la règle de trois et la règle de cinq. Dans les scénarios du monde réel, il peut ne pas être trivial de déterminer exactement quelles fonctions générées par le compilateur (constructeurs, opérateurs d'affectation, destructeur) ont été réellement créées par le compilateur. Existe-t-il …
Vous savez pourquoi l'extrait de code suivant ne se compile pas? Il se plaint d'une erreur "erreur: opérandes à?: Avoir différents types" auto lambda1 = [&](T& arg) { ... }; auto lambda2 = [&](T& arg) { ... }; auto lambda = condition ? lambda1 : lambda2;
Une fonction surchargée devrait prendre les deux foncteurs, étant donné que le type du lambda est décidable (transtypable en un std::function(veuillez me corriger si je me trompe). La question est: pourquoi y a-t-il une erreur de compilation ci-dessous, alors que le type lambda est explicitement défini? ( [&]() -> Type …
Est-ce que l'exemple suivant (artificiel) est correct ou est-ce un comportement non défini: // undefined behavior? const auto& c = SomeClass{}; // use c in code later const auto& v = c.GetSomeVariable();
J'ai du code qui trouve et imprime les correspondances d'un modèle en passant par le conteneur de chaînes. L'impression est effectuée dans la fonction foo qui est modélisée Le code #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <tuple> #include <utility> template<typename Iterator, template<typename> class Container> void …
Considérez ce programme: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Il n'a pas réussi à compiler avec msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using …
J'ai lu sur la suppression de la référence d'un type ici . Il donne l'exemple suivant: #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, …
Il existe std::array<T, N>::size(), mais il n'est pas statique, il nécessite donc une instance de std::array. Existe-t-il un moyen d'obtenir la valeur qu'il renvoie (qui est la valeur Nde std::array<T, N>) sans avoir à construire une instance du tableau? Pour un tableau normal, j'aurais pu utiliser sizeof, mais je ne …
J'ai un wrapper pour un morceau de code hérité. class A{ L* impl_; // the legacy object has to be in the heap, could be also unique_ptr A(A const&) = delete; L* duplicate(){L* ret; legacy_duplicate(impl_, &L); return ret;} ... // proper resource management here }; Dans ce code hérité, la …
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 …
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.