Articles of c ++ faq

Resultado de ponto flutuante diferente com otimização ativada – bug do compilador?

O código abaixo funciona no Visual Studio 2008 com e sem otimização. Mas só funciona em g ++ sem otimização (O0). #include #include #include double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << t << std::endl; double r = std::floor(t + 0.5); //std::cout […]

Por que uma class de modelo derivada não tem access a identificadores de uma class de modelo base?

Considerar: template class Base { public: static const bool ZEROFILL = true; static const bool NO_ZEROFILL = false; } template class Derived : public Base { public: Derived( bool initZero = NO_ZEROFILL ); // NO_ZEROFILL is not visible ~Derived(); } Eu não sou capaz de compilar isso com GCC g ++ 3.4.4 (cygwin). Antes de […]

Quais são as vantagens de usar nullptr?

Este pedaço de código conceitualmente faz a mesma coisa para os três pointers (boot de ponteiro seguro): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; E então, quais são as vantagens de atribuir pointers nullptr ao atribuir-lhes os valores NULL ou 0 ?

Como fazer com que o IOStream funcione melhor?

A maioria dos usuários de C ++ que aprenderam C preferem usar a família de funções printf / scanf mesmo quando estão codificando em C ++. Embora eu admita que eu ache a interface melhor (especialmente formato e localização semelhantes a POSIX), parece que uma grande preocupação é o desempenho. Tomando a olhar para esta […]

Por que o volátil existe?

O que a palavra-chave volatile faz? Em C ++, qual problema isso resolve? No meu caso, eu nunca precisei conscientemente disso.

Por que as funções inline do C ++ estão no header?

NB Esta não é uma questão sobre como usar funções inline ou como elas funcionam, mais por que elas são feitas do jeito que são. A declaração de uma function de membro de class não precisa definir uma function como inline , é apenas a implementação real da function. Por exemplo, no arquivo de header: […]

O que é um “período” e quando devo usar um?

Recentemente eu recebi sugestões para usar span no meu código, ou já vi algumas respostas aqui no site que usam span ‘s – supostamente algum tipo de container. Mas – não consigo encontrar nada parecido na biblioteca padrão do C ++. Então, o que é esse span misterioso span , e por que (ou quando) […]

Const faz significar thread-safe em C ++ 11?

Eu ouço que const significa thread-safe em C ++ 11 . Isso é verdade? Isso significa que const é agora o equivalente do synchronized de Java ? Eles estão ficando sem palavras-chave ?

Construtor de cópia e sobrecarga de operador = em C ++: é uma function comum possível?

Desde um construtor de cópia MyClass(const MyClass&); e uma sobrecarga do operador MyClass& operator = (const MyClass&); tem praticamente o mesmo código, o mesmo parâmetro, e só diferem no retorno, é possível ter uma function comum para ambos usarem?

Por que um programa simples do tipo “Hello World” não é compilado com o Turbo C ++?

Eu comecei a aprender C ++ para minha aula de programação. Eu baixei este programa “Hello World”: #include using namespace std; int main() { cout << "Hello, World!"; return 0; } mas o Turbo C ++ reclama: Error D:\HELLO.CPP 1: Unable to open include file ‘IOSTREAM’ Error D:\HELLO.CPP 2: Declaration syntax error Error D:\HELLO.CPP 6: […]