Comment puis-je obtenir un décompte du nombre d'arguments d'une fonction de modèle variadique? c'est à dire: template<typename... T> void f(const T&... t) { int n = number_of_args(t); ... } Quelle est la meilleure façon de mettre number_of_argsen œuvre ce qui précède?
Avant C ++ 11, nous ne pouvions effectuer une initialisation en classe que sur des membres const statiques de type intégral ou énumération. Stroustrup en parle dans sa FAQ C ++ , en donnant l'exemple suivant: class Y { const int c3 = 7; // error: not static static int …
Considérez le programme suivant: #include <string> #include <vector> using namespace std; struct T { int a; double b; string c; }; vector<T> V; int main() { V.emplace_back(42, 3.14, "foo"); } Ça ne marche pas: $ g++ -std=gnu++11 ./test.cpp In file included from /usr/include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:34:0, from /usr/include/c++/4.7/bits/allocator.h:48, from /usr/include/c++/4.7/string:43, from ./test.cpp:1: /usr/include/c++/4.7/ext/new_allocator.h: …
Dans le C++programme suivant , la modification d'un membre de données statiques à partir d'une constfonction fonctionne correctement: class A { public: static int a; // static data member void set() const { a = 10; } }; Mais la modification d'un membre de données non statique à partir d'une …
J'envisage l'utilisation de certaines fonctionnalités C ++ 11 (comme autopar exemple) dans certains projets multiplateformes (Windows + Mac). Sous Windows, Visual Studio prend en charge certaines parties de la future norme C ++ 11 qui me permettraient de simplifier certaines parties de la base de code, alors je serais naturellement …
Si j'ai la déclaration suivante: float a = 3.0 ; est-ce une erreur? J'ai lu dans un livre qui 3.0est une doublevaleur et que je dois spécifier comme float a = 3.0f. Est-ce vrai?
Ceci fait suite à ma question précédente sur les jolis conteneurs STL , pour lesquels nous avons réussi à développer une solution très élégante et totalement générale. Dans cette prochaine étape, je voudrais inclure la jolie impression pour std::tuple<Args...>, en utilisant des modèles variadiques (donc c'est strictement C ++ 11). …
L'un de mes animaux de compagnie déteste les langages dérivés du C (en tant que mathématicien) est que (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly Quelle est la meilleure solution? C ++ permet la possibilité de surcharger les modèles et les opérateurs, …
C ++ 0x va rendre le code suivant et le code similaire mal formé, car il nécessite une conversion dite restrictive de a doubleen a int. int a[] = { 1.0 }; Je me demande si ce type d'initialisation est beaucoup utilisé dans le code du monde réel. Combien de …
Comment puis-je vérifier si un std::threadest toujours en cours d'exécution (de manière indépendante de la plate-forme)? Il manque une timed_join()méthode et joinable()n'est pas fait pour cela. J'ai pensé à verrouiller un mutex avec un std::lock_guarddans le thread et à utiliser la try_lock()méthode du mutex pour déterminer s'il est toujours verrouillé …
Actuellement, je ne peux faire que des boucles basées à distance avec ceci: for (auto& value : values) Mais parfois, j'ai besoin d'un itérateur de la valeur, au lieu d'une référence (pour une raison quelconque). Existe-t-il une méthode sans avoir à parcourir tout le vecteur de comparaison des valeurs?
J'utilise une bibliothèque externe qui à un moment donné me donne un pointeur brut vers un tableau d'entiers et une taille. Maintenant, j'aimerais utiliser std::vectorpour accéder et modifier ces valeurs en place, plutôt que d'y accéder avec des pointeurs bruts. Voici un exemple explicatif qui explique le point: size_t size …
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 …
Le sujet a été discuté auparavant , mais ce n'est pas un doublon. Lorsque quelqu'un demande la différence entre decltype(a)et decltype((a)), la réponse habituelle est - aest une variable, (a)est une expression. Je trouve cette réponse insatisfaisante. Tout d'abord, ac'est aussi une expression. Les options pour une expression primaire incluent, …
Supposons que vous ayez le code suivant: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } Imaginez que le vecteur ne le soit pas std::string, mais …
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.