Perguntas com a marcação «c++11»

Use essa tag para código que deve ser compilado como C ++ 11 (sem usar os recursos introduzidos no C ++ 14 ou posterior).




1
regressão de desempenho std :: vector ao ativar o C ++ 11
Encontrei uma regressão interessante de desempenho em um pequeno trecho de C ++, quando habilito o C ++ 11: #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { …
235 c++  performance  gcc  c++11  vector 

4
Por que eu usaria push_back em vez de emplace_back?
Os vetores C ++ 11 têm a nova função emplace_back. Ao contrário push_back, que depende de otimizações do compilador para evitar cópias, emplace_backusa o encaminhamento perfeito para enviar os argumentos diretamente ao construtor para criar um objeto no local. Parece-me que emplace_backfaz tudo o que push_backpode fazer, mas algumas vezes …
232 c++  c++11  std 


10
As funções lambda podem ser modeladas?
No C ++ 11, existe uma maneira de modelar uma função lambda? Ou é inerentemente específico demais para ser modelado? Entendo que posso definir uma classe / functor com modelo clássico, mas a pergunta é mais como: a linguagem permite modelar funções lambda?
230 c++  templates  lambda  c++11 

4
Que tipo de ponteiro eu uso quando?
Ok, então a última vez que escrevi C ++ para viver, std::auto_ptrera tudo o que a lib std tinha disponível, e boost::shared_ptrera toda a raiva. Eu realmente nunca olhei para os outros tipos de ponteiros inteligentes fornecidos. Entendo que o C ++ 11 agora fornece alguns dos tipos que o …

10
Quais mudanças recentes são introduzidas no C ++ 11?
Eu sei que pelo menos uma das alterações no C ++ 11 que fará com que algum código antigo pare de compilar: a introdução de explicit operator bool()na biblioteca padrão, substituindo instâncias antigas deoperator void*() . É verdade que o código que isso quebrará provavelmente é um código que não …
227 c++  c++11 




2
Por que não posso enviar push_back um unique_ptr para um vetor?
O que há de errado com este programa? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } O erro: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void …

6
make_unique e encaminhamento perfeito
Por que não há std::make_uniquemodelo de função na biblioteca C ++ 11 padrão? eu acho std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); um pouco detalhado. O seguinte não seria muito melhor? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Isso oculta newbem e apenas menciona o tipo uma vez. De qualquer forma, aqui está …


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.