Qual é a maneira correta de usar o intervalo do C ++ 11 for? Qual sintaxe deve ser usada? for (auto elem : container), ou for (auto& elem : container)ou for (const auto& elem : container)? Ou algum
Qual é a maneira correta de usar o intervalo do C ++ 11 for? Qual sintaxe deve ser usada? for (auto elem : container), ou for (auto& elem : container)ou for (const auto& elem : container)? Ou algum
É possível passar uma função lambda como um ponteiro de função? Nesse caso, devo estar fazendo algo incorretamente porque estou recebendo um erro de compilação. Considere o seguinte exemplo using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private:...
Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2 Este é um exemplo de uma parte do código C ++ 11: auto text = std::unique_ptr<char[]>(new char[len]); O editor Eclipse reclama sobre: Function 'unique_ptr' could not be resolved A compilação Makefile funciona bem. Como fazer o Eclipse parar de reclamar...
Às vezes, alega-se que o C ++ 11/14 pode proporcionar um aumento de desempenho, mesmo quando apenas compilando o código C ++ 98. A justificativa é geralmente na linha da semântica de movimentação, pois em alguns casos os construtores rvalue são gerados automaticamente ou agora fazem parte do STL....
Todo contêiner padrão possui um método begine endpara retornar iteradores para esse contêiner. No entanto, o C ++ 11 aparentemente introduziu funções gratuitas chamadas std::begine std::endque chamam as funções de membro begine end. Então, ao invés de escrever auto i = v.begin(); auto e =...
Este deve ser o exemplo: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } Ele lança o erro: gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf): undefined...
Com o novo padrão, existem novas maneiras de fazer as coisas, e muitas são mais agradáveis que as antigas, mas a antiga ainda é boa. Também está claro que o novo padrão não obsoleta muito, por motivos de compatibilidade com versões anteriores. Portanto, a questão que resta é: Quais formas...
Se eu tenho uma variável dentro de uma função (digamos, uma matriz grande), faz sentido declará-la statice constexpr? constexprgarante que a matriz é criada em tempo de compilação, então isso seria staticinútil? void f() { static constexpr int x [] = { // a few thousand elements }; // do...
Por que a função reversa para a std::listclasse na biblioteca padrão C ++ possui tempo de execução linear? Eu pensaria que, para listas duplamente vinculadas, a função reversa deveria ter sido O (1). A reversão de uma lista duplamente vinculada deve envolver apenas a troca da cabeça e dos...
Coloquei minhas habilidades em C ++ na prateleira há vários anos e parece que agora, quando preciso delas novamente, o cenário mudou. Temos o C ++ 11 agora, e meu entendimento é que ele se sobrepõe a muitos recursos do Boost. Existe algum resumo de onde estão essas sobreposições, quais...
[dcl.attr.noreturn] fornece o seguinte exemplo: [[ noreturn ]] void f() { throw "error"; // OK } mas eu não entendo qual é o objetivo [[noreturn]], porque o tipo de retorno da função já é void. Então, qual é o objetivo do noreturnatributo? Como é que deve ser
Eu tenho esse código que não funciona, mas acho que a intenção é clara: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator...
Gostaria de saber por que cbegine cendforam introduzidos no C ++ 11? Quais são os casos em que chamar esses métodos faz diferença das sobrecargas const de begine
Eu quero ter uma static const charmatriz na minha classe. O GCC reclamou e me disse que eu deveria usar constexpr, embora agora esteja me dizendo que é uma referência indefinida. Se eu fizer da matriz um não membro, ela será compilada. O que está acontecendo? // .hpp struct foo { void bar();...
Com a chegada do novo padrão (e peças já disponíveis em alguns compiladores), o novo tipo std::unique_ptrdeve ser um substituto std::auto_ptr. O uso deles se sobrepõe exatamente (para que eu possa localizar / substituir globalmente no meu código (não que eu faria isso, mas se o fizesse)) ou devo...
Quais são as razões da existência de std::decay? Em que situações é
Eu li e ouvi dizer que o C ++ 11 suporta Unicode. Algumas perguntas sobre isso: Quão bem a biblioteca padrão C ++ suporta Unicode? Faz std::stringo que deveria? Como eu uso isso? Onde estão os problemas em potencial?
Esta resposta de @R. Martinho Fernandes mostra que o idioma safe-bool é obsoleto em C ++ 11, pois pode ser substituído por um simples explicit operator bool() const; de acordo com a citação padrão na resposta §4 [conv] p3: Uma expressão e pode ser implicitamente convertida em um tipo Tse, e...
Como removo de um mapa enquanto o itero? gostar: std::map<K, V> map; for(auto i : map) if(needs_removing(i)) // remove it from the map Se eu usá- map.eraselo, invalidará os
Usando C ++ 11, Ubuntu 14.04, cadeia de ferramentas padrão do GCC . Este código falha: constexpr std::string constString = "constString"; erro: o tipo 'const string {aka const std :: basic_string}' da variável constexpr 'constString' não é literal ... porque ... 'std :: basic_string' possui um...