Lorsque j’écris un lambda avec [=] , cela signifie-t-il que toutes mes variables locales seront copiées dans les membres de la structure créée ou puis-je supposer que seules celles qui seront réellement utilisées dans le lambda? Par exemple: void f() { vector v(10000); const int n = 5; const int DivByNCnt = count_if(istream_iterator(cin), istream_iterator(), [=](int […]
Supposons que j’ai une fonction qui ajoute deux valeurs ensemble. Si je ne sais rien des types, je dois essentiellement écrire ma fonction deux fois; une fois dans la valeur de retour réelle et à nouveau comme spécificateur de type de retour: template auto Add(const A& a, const B& b) ->std::decay::type { return a + […]
J’ai regardé le discours de Scott Meyers sur les références universelles de la conférence C ++ et Beyond 2012, et tout a un sens jusqu’ici. Cependant, un membre du public pose une question à environ 50 minutes, à propos de laquelle je me posais également des questions. Meyers dit qu’il ne se soucie pas de […]
Considérons une classe X avec N variables membres, chacune de type copiable et mobile , et N fonctions de réglage correspondantes. En C ++ 98, la définition de X ressemblerait probablement à ceci: class X { public: void set_a(A const& a) { _a = a; } void set_b(B const& b) { _b = b; } […]
Le comité a modifié la boucle basée sur la plage à partir de: C ++ 11: { auto && __range = range_expression ; for (auto __begin = begin_expr, __end = end_expr; __begin != __end; ++__begin) { range_declaration = *__begin; loop_statement } } en C ++ 17: { auto && __range = range_expression ; auto __begin […]
Est-ce struct Example { int a, b; Example(int mA, int mB) : a{mA}, b{mB} { } Example(const Example& mE) : a{mE.a}, b{mE.b} { } Example(Example&& mE) : a{move(mE.a)}, b{move(mE.b)} { } Example& operator=(const Example& mE) { a = mE.a; b = mE.b; return *this; } Example& operator=(Example&& mE) { a = move(mE.a); b = move(mE.b); […]
Je travaille sur une mise en œuvre de tampon circulaire unique pour un seul producteur. J’ai deux exigences: 1) Alignez une seule instance de mémoire tampon en anneau allouée sur une ligne de cache. 2) Aligner un champ dans un tampon circulaire sur une ligne de cache (pour éviter un partage erroné). Ma classe ressemble […]
Comstackr cet exemple de code pour boost :: program_options: http://svn.boost.org/svn/boost/trunk/libs/program_options/example/first.cpp … sur MacOS Lion (10.7.2), en utilisant boost-1.48.0 installé avec MacPorts: $ clang++ -v Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn) Target: x86_64-apple-darwin11.2.0 Thread model: posix $ clang++ -std=c++0x –stdlib=libc++ -lc++ -I/opt/local/include -L/opt/local/lib -lboost_program_options first.cpp -o first Undefined symbols for architecture x86_64: “boost::program_options::options_description::options_description(std::__1::basic_ssortingng<char, […]
Maintenant que C ++ 11 est multithreading, je me demandais quelle est la manière correcte d’implémenter un singleton initialisé paresseux sans utiliser de mutex (pour des raisons de perf). Je suis venu avec ceci, mais je ne suis pas vraiment bon à écrire le code de lockfree, ainsi je cherche de meilleures solutions. // ConsoleApplication1.cpp […]
Comment puis-je sortinger deux vecteurs de la même manière, avec des critères qui utilisent un seul des vecteurs? Par exemple, supposons que j’ai deux vecteurs de même taille: vector vectorA; vector vectorB; Je sortinge ensuite les vectorA utilisant une fonction de comparaison. Ce sorting a réorganisé le vectorA . Comment puis-je appliquer le même réordonnancement […]