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

384
O que é std :: promessa?

Estou bastante familiarizado com C ++ 11 do std::thread, std::asynce std::futurecomponentes (por exemplo, veja esta resposta ), que são simples e direta. No entanto, não consigo entender bem o que std::promiseé, o que faz e em que situações é melhor usado. O documento padrão em si não contém muita...

369
Typedef do modelo C ++

Eu tenho aula template<size_t N, size_t M> class Matrix { // .... }; Eu quero fazer um typedefque cria um Vector(vetor de coluna) que é equivalente a um Matrixcom tamanhos N e 1. Algo assim: typedef Matrix<N,1> Vector<N>; O que produz erro de compilação. O seguinte cria algo...

367
Compilando C ++ 11 com g ++

Estou tentando atualizar meu compilador C ++ para C ++ 11. Pesquisei um pouco e cheguei à conclusão de que tenho de usar a bandeira -std=c++0xou -std=gnu++0x, mas não sei muitas coisas sobre bandeiras. Alguém pode me ajudar? (Estou usando o Ubuntu 12.04.) Aqui está o erro que eu recebo do...

367
Retornando unique_ptr das funções

unique_ptr<T>não permite a construção da cópia, mas suporta a semântica de movimentação. No entanto, posso retornar a unique_ptr<T>de uma função e atribuir o valor retornado a uma variável. #include <iostream> #include <memory> using namespace std; unique_ptr<int>...

356
Como ativo o C ++ 11 no CMake?

Quando tento executar um makefile gerado pelo CMake para compilar meu programa, recebo o erro que o intervalo baseado em loops não é suportado no modo C ++ 98. Tentei adicionar add_definitions(-std=c++0x)ao meu CMakeLists.txt, mas não ajudou. Eu tentei isso

337
Quando você deve usar o recurso constexpr no C ++ 11?

Parece-me que ter uma "função que sempre retorna 5" está quebrando ou diluindo o significado de "chamar uma função". Deve haver um motivo ou uma necessidade desse recurso ou não seria no C ++ 11. Por que está aí? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife =...

334
Para que servem os namespaces embutidos?

O C ++ 11 permite inline namespaces, todos os membros dos quais também estão automaticamente no anexo namespace. Não consigo pensar em nenhuma aplicação útil disso - alguém pode, por favor, dar um exemplo sucinto e breve de uma situação em que inline namespaceé necessário e onde é a solução mais...

321
C ++ 11 loop for baseado em intervalo reverso

Existe um adaptador de contêiner que inverta a direção dos iteradores para que eu possa iterar sobre um contêiner invertido com loop for baseado em intervalo? Com iteradores explícitos, eu converteria isso: for (auto i = c.begin(); i != c.end(); ++i) { ... nisso: for (auto i = c.rbegin(); i !=...

294
Iniciar thread com função membro

Eu estou tentando construir um std::threadcom uma função de membro que não leva argumentos e retornos void. Não consigo descobrir nenhuma sintaxe que funcione - o compilador reclama, não importa o quê. Qual é a maneira correta de implementar spawn()para que ele retorne um std::threadque seja...

276
Diferença no make_shared e shared_ptr normal em C ++

std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Muitas postagens do google e do stackoverflow existem sobre isso, mas não consigo entender por que make_sharedé mais eficiente do que usar diretamente shared_ptr. Alguém...

270
Por que o C ++ não possui um coletor de lixo?

Não estou fazendo essa pergunta por causa dos méritos da coleta de lixo antes de tudo. Minha principal razão para perguntar isso é que eu sei que Bjarne Stroustrup disse que o C ++ terá um coletor de lixo em algum momento. Com isso dito, por que não foi adicionado? Já existem alguns coletores de...