C ++ 14 est le nom du standard C ++, approuvé en 2014. Il s'appuie sur le précédent standard C ++ 11, améliorant le langage de base et la bibliothèque standard et ajoutant quelques fonctionnalités.
Supposons que j'ai trois objets compilés, tous produits par le même compilateur / version : A a été compilé avec le standard C ++ 11 B a été compilé avec le standard C ++ 14 C a été compilé avec le standard C ++ 17 Pour plus de simplicité, supposons …
J'essaie de compiler le programme de pool de threads suivant publié sur la revue de code pour le tester. /codereview/55100/platform-independant-thread-pool-v4 Mais je reçois les erreurs threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); …
Lorsque je lisais le code source de Seastar , j'ai remarqué qu'il existe une structure d'union appelée tx_sidequi n'a qu'un seul membre. Est-ce un hack pour résoudre un certain problème? Pour info, je colle la tx_sidestructure ci-dessous: union tx_side { tx_side() {} ~tx_side() {} void init() { new (&a) aa; …
Je travaille avec la mémoire de certains lambdas en C ++, mais je suis un peu perplexe par leur taille. Voici mon code de test: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout …
La description de std::is_voidindique que: Fournit la valeur de constante de membre égale à true, si T est du type void, const void, volatile void ou const volatile void. Alors que pourrait être const void, ou un volatile void? Cette réponse indique que le const voidtype de retour serait invalide …
Je suis très confus au sujet de l'initialisation de la valeur et par défaut et zéro. et surtout lorsqu'ils se lancent dans les différents standards C ++ 03 et C ++ 11 (et C ++ 14 ). Je cite et j'essaie d'étendre une très bonne réponse Value- / Default- / …
J'essaie de comprendre comment obtenir l'adresse d'une fonction lambda en elle-même. Voici un exemple de code: []() { std::cout << "Address of this lambda function is => " << ???? }(); Je sais que je peux capturer le lambda dans une variable et imprimer l'adresse, mais je veux le faire …
Je travaille dans un projet avec C ++ 11 et j'ai essayé de suivre le code #include <atomic> struct A { std::atomic_int idx = 1; }; int main() { return 0; } J'obtiens l'erreur du compilateur error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const std::__atomic_base<_IntTp>&) [with _ITp = int]' std::atomic_int idx = …
J'ai trouvé que lvalueles fermetures lambda peuvent toujours être passées en tant que rvalueparamètres de fonction. Voir la démonstration simple suivante. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works …
Existe-t-il un moyen de vérifier en C ++ 11 si une énumération est continue ? Il est tout à fait valide de donner des valeurs d'énumération qui ne le sont pas. Existe-t-il peut-être une fonctionnalité comme un trait de type en C ++ 14, C ++ 17 ou peut-être C …
J'ai un modèle de fonction qui prend de nombreux types différents en entrée. Parmi ces types, un seul a une getInt()fonction. Par conséquent, je veux que le code exécute la fonction uniquement pour ce type. Veuillez suggérer une solution. Merci #include <type_traits> #include <typeinfo> class X { public: int getInt(){ …
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 …
L'exemple absurde suivant ne se compile pas, mais existe-t-il un autre moyen de passer un modèle de variable comme argument de modèle de modèle? template<typename T> constexpr auto zero = T{0}; template<typename T, template<typename> auto VariableTemplate> constexpr auto add_one() { return VariableTemplate<T> + T{1}; } int main() { return add_one<int, …
Jonathan Boccara (auteur de Fluent C ++ ) a écrit une bibliothèque appelée pipes . Ce "piping", dit la page principale du référentiel, ne ressemble pas à l'utilisation de plages, même s'il a la même apparence: il n'est pas basé sur un tir paresseux, mais plutôt sur une poussée désireuse. …
Je crée une classe de type chaînage, comme le petit exemple ci-dessous. Il semble que lors du chaînage des fonctions membres, le constructeur de copie soit invoqué. Existe-t-il un moyen de se débarrasser de l'appel du constructeur de copie? Dans mon exemple de jouet ci-dessous, il est évident que je …
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.