Programação c++14
Perguntas com a marcação «c++14»
C ++ 14 é o nome do padrão C ++, aprovado em 2014. Ele se baseia no padrão C ++ 11 anterior, aprimorando a linguagem central e a biblioteca padrão e adicionando alguns recursos.
Como implementar algoritmos de classificação clássicos em C ++ moderno?
O std::sortalgoritmo (e seus primos std::partial_sorte std::nth_element) da Biblioteca Padrão C ++ é, na maioria das implementações, uma combinação complicada e híbrida de algoritmos de classificação mais elementares , como classificação de seleção, classificação de inserção, classificação rápida, classificação de mesclagem ou classificação de pilha. Há muitas perguntas aqui e …
O C ++ moderno pode obter desempenho de graça?
À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. Agora, …
Captura Lambda como referência const?
É possível capturar por referência const em uma expressão lambda? Quero que a tarefa marcada abaixo falhe, por exemplo: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string strings[] = { "hello", "world" }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string = "foo"; …
Quais são alguns usos do decltype (auto)?
Como fazer o armazenamento de dados em Stack Overflow em um arquivo : Registro de dados decltype (auto) No c ++ 14, o decltype(auto)idioma é introduzido. Normalmente, seu uso é permitir que as autodeclarações usem as decltyperegras na expressão especificada . Procurando exemplos de uso "bom" do idioma, só consigo …
Como o `void_t` funciona
Eu assisti a palestra de Walter Brown no Cppcon14 sobre programação de modelos modernos ( Parte I , Parte II ), onde ele apresentou sua void_ttécnica SFINAE. Exemplo: Dado um modelo de variável simples que avalia voidse todos os argumentos do modelo estão bem formados: template< class ... > using …
Quando devo usar a dedução automática de tipo de retorno do C ++ 14?
Com o GCC 4.8.0 lançado, temos um compilador que oferece suporte à dedução automática de tipo de retorno, parte do C ++ 14. Com -std=c++1y, eu posso fazer isso: auto foo() { //deduced to be int return 5; } Minha pergunta é: quando devo usar esse recurso? Quando é necessário …
O #pragma já fez parte do padrão C ++ 11?
Tradicionalmente, a maneira padrão e portátil de evitar múltiplas inclusões de cabeçalho no C ++ era / é usar o #ifndef - #define - #endifesquema de diretivas de pré-compilador, também chamado de esquema de guarda de macro (veja o trecho de código abaixo). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif Na …
Como o lambda genérico funciona em C ++ 14?
Como o lambda genérico funciona ( autopalavra-chave como tipo de argumento) no padrão C ++ 14? É baseado em modelos C ++ onde, para cada tipo de argumento diferente, o compilador gera uma nova função com o mesmo corpo, mas com tipos substituídos (polimorfismo em tempo de compilação) ou é …
Como posso evitar loops "for" com uma condição "if" dentro deles com C ++?
Com quase todo o código que escrevo, frequentemente estou lidando com problemas de redução de conjuntos em coleções que acabam resultando em condições ingênuas "se" dentro delas. Aqui está um exemplo simples: for(int i=0; i<myCollection.size(); i++) { if (myCollection[i] == SOMETHING) { DoStuff(); } } Com linguagens funcionais, posso resolver …
No C ++ 14, os contêineres associativos parecem ter mudado do C ++ 11 - [associative.reqmts] / 13 diz: Os modelos de função de membro find, count, lower_bound, upper_bound, e equal_rangenão devem participar de resolução de sobrecarga, a menos que o tipo Compare::is_transparentexiste. Qual é o objetivo de tornar um …
O C ++ 14 está adicionando novas palavras-chave ao C ++?
O Comitê de Padrões C ++ tende a se esquivar de adicionar novas palavras-chave à linguagem, mas com C ++ 11 esse não era o caso. Alguns exemplos: constexpr decltype thread_local auto // New usage noexcept nullptr static_assert alignof alignas Há alguma nova palavra-chave introduzida no C ++ 14?