Questions marquées «c++14»

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.


6
error :: make_unique n'est pas membre de 'std'
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)); …

2
Quel est le but d'utiliser un syndicat avec un seul membre?
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; …
89 c++  c++14  unions 

5
Pourquoi un lambda a-t-il une taille de 1 octet?
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 …
89 c++  c++11  lambda  c++14  sizeof 

3
Qu'est-ce que const void?
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 …
89 c++  c++11  c++14 




3
Les valeurs de fermeture lambda peuvent être passées en tant que paramètres de référence rvalue
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 …

4
Énumération continue C ++ 11
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 …
17 c++  c++11  c++14  c++17  c++20 

3
Exécuter la fonction à l'intérieur du modèle de fonction uniquement pour les types ayant la fonction définie
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(){ …


1
Un modèle de variable peut-il être passé comme argument de modèle de modèle?
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, …


2
Comment élider la copie lors du chaînage?
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 …
10 c++  c++14  c++17 

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.