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

102
Fazendo downcast de shared_ptr <Base> para shared_ptr <Derived>?

Update: o shared_ptr neste exemplo é como o do Boost, mas não suporta shared_polymorphic_downcast (ou dynamic_pointer_cast ou static_pointer_cast para esse assunto)! Estou tentando inicializar um ponteiro compartilhado para uma classe derivada sem perder a contagem de referência: struct Base {...

102
Instanciação explícita do modelo - quando é usado?

Depois de algumas semanas de intervalo, estou tentando expandir e estender meu conhecimento sobre modelos com o livro Templates - The Complete Guide de David Vandevoorde e Nicolai M. Josuttis, e o que estou tentando entender neste momento é a instanciação explícita de modelos . Na verdade, não...

102
Captura C ++ 0x lambda por valor sempre const?

Existe alguma maneira de capturar por valor e tornar o valor capturado não constante? Eu tenho um functor de biblioteca que gostaria de capturar e chamar um método que não é constante, mas deveria ser. O seguinte não compila, mas fazer foo :: operator () const corrige isso. struct foo { bool...

102
A referência nula é possível?

Este pedaço de código é válido (e comportamento definido)? int &nullReference = *(int*)0; Ambos g ++ e clang ++ compilação-lo sem qualquer aviso, mesmo quando se usa -Wall, -Wextra, -std=c++98, -pedantic, -Weffc++... Claro que a referência não é realmente nula, uma vez que não pode ser...

102
Como faço para usar o CMake?

Estou tentando usar o CMake para compilar o opencv. Estou lendo o tutorial, mas não consigo entender o que são arquivos CMakeLists e como eles estão conectados à interface do CMake? Também não conseguia entender o que são makefiles, eles são os mesmos que CMakeLists? E qual arquivo eu acabo...

102
Redefinir a matriz C int para zero: a maneira mais rápida?

Supondo que temos a T myarray[100]com T = int, unsigned int, long long int ou unsigned long long int, qual é a maneira mais rápida de redefinir todo o seu conteúdo para zero (não apenas para inicialização, mas para redefinir o conteúdo várias vezes em meu programa) ? Talvez com o memset? Mesma...

102
Faça um programa funcionar lentamente

Existe alguma maneira de executar um programa C ++ mais lento alterando os parâmetros do sistema operacional no Linux? Desta forma, gostaria de simular o que acontecerá se aquele programa específico rodar em uma máquina realmente mais lenta. Em outras palavras, uma máquina mais rápida deve se...

102
Por que string :: compare retorna um int?

Por que string::compareretorna um em intvez de um tipo menor como shortou char? Meu entendimento é que esse método retorna apenas -1, 0 ou 1. Segunda parte, se eu fosse projetar um método de comparação que compare dois objetos do tipo Fooe quisesse apenas retornar -1, 0 ou 1, usar shortou...

102
Maneira moderna de filtrar o contêiner STL?

Voltando ao C ++ depois de anos de C #, eu estava me perguntando qual seria a forma moderna - leia-se: C ++ 11 - de filtrar um array, ou seja, como podemos conseguir algo semelhante a esta consulta Linq: var filteredElements = elements.Where(elm => elm.filterProperty == true); Para filtrar...

102
Conversão de imagem para arte ASCII

Prólogo Este assunto aparece aqui no Stack Overflow de vez em quando, mas geralmente é removido por ser uma pergunta mal escrita. Eu vi muitas dessas perguntas e, em seguida, silêncio do OP (baixa repetição usual) quando informações adicionais são solicitadas. De vez em quando, se a entrada for boa...

101
Apagando elementos de um vetor

Quero limpar um elemento de um vetor usando o método erase. Mas o problema aqui é que não é garantido que o elemento ocorra apenas uma vez no vetor. Pode estar presente várias vezes e preciso limpar todos eles. Meu código é mais ou menos assim: void erase(std::vector<int>& myNumbers_in,...

101
Números aleatórios ponderados

Estou tentando implementar números aleatórios ponderados. No momento, estou apenas batendo minha cabeça contra a parede e não consigo descobrir isso. No meu projeto (intervalos de mãos de Hold'em, análise subjetiva de equidade total), estou usando as funções aleatórias de Boost. Então, digamos que...