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

187
Argumentos de modelo padrão para modelos de função

Por que argumentos de modelo padrão são permitidos apenas em modelos de classe? Por que não podemos definir um tipo padrão em um modelo de função de membro? Por exemplo: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Em vez disso, o C ++ força que os...

187
Como faço para transformar o CMake em um diretório 'bin'?

Atualmente, estou construindo um projeto com uma estrutura de plugins. Estou usando o CMake para compilar o projeto. Os plugins são compilados em diretórios separados. Meu problema é que o CMake compila e salva os binários e plugins, bibliotecas dinâmicas, na estrutura de diretórios da fonte. Como...

187
Chaves desnecessárias em C ++?

Ao fazer uma revisão de código para um colega hoje, vi uma coisa peculiar. Ele havia cercado seu novo código com chaves assim: Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } Qual é o resultado disso, se houver? Qual poderia ser o...

186
Como o GCC e o g ++ são inicializados?

Isso tem me incomodado por algum tempo. Como o GCC e o g ++ se compilam? Estou supondo que toda revisão seja compilada com uma revisão criada anteriormente. Isso é verdade? E se for, isso significa que as versões mais antigas do g ++ e do GCC foram gravadas em

186
fork () ramifica mais do que o esperado?

Considere o seguinte trecho de código: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Este programa gera 8 pontos. Como isso pode ser possível? Não deveria haver 6...

186
O que fez i = i ++ + 1; legal em C ++ 17?

Antes de começar a gritar comportamento indefinido, isso está explicitamente listado em N4659 (C ++ 17) i = i++ + 1; // the value of i is incremented Ainda em N3337 (C ++ 11) i = i++ + 1; // the behavior is undefined O que mudou? Pelo que posso entender , de [N4659 basic.exec] Exceto...

185
mmap () vs. blocos de leitura

Estou trabalhando em um programa que processará arquivos com tamanho potencial de 100 GB ou mais. Os arquivos contêm conjuntos de registros de comprimento variável. Eu tenho uma primeira implementação em funcionamento e agora estou olhando para melhorar o desempenho, principalmente para fazer E / S...

185
Em que cenário eu uso um contêiner STL específico?

Estive lendo sobre contêineres STL em meu livro sobre C ++, especificamente a seção sobre o STL e seus contêineres. Agora eu entendo que cada um deles tem suas próprias propriedades específicas e estou quase memorizando todas elas ... Mas o que ainda não entendo é em que cenário cada uma delas é...

185
Contentores STL ou Qt?

Quais são as vantagens e desvantagens de utilizar recipientes Qt ( QMap, QVector, etc.) sobre a sua STL equivalente? Eu posso ver um motivo para preferir o Qt: Os contêineres de Qt podem ser repassados ​​para outras partes do Qt. Por exemplo, eles podem ser usados ​​para preencher um QVariante...

185
std :: auto_ptr para std :: unique_ptr

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...

185
Não é possível usar o módulo em duplas?

Eu tenho um programa em C ++ (compilado usando g ++). Estou tentando aplicar dois duplos como operandos à função de módulo, mas recebo o seguinte erro: error: operandos inválidos dos tipos 'double' e 'double' para o operador binário '%' Aqui está o código: int main() { double x = 6.3;...