Resultados da pesquisa a pedido "language-lawyer"

7 a resposta

O comportamento da divisão de ponto flutuante por zero

Considerar #include <iostream> int main() { double a = 1.0 / 0; double b = -1.0 / 0; double c = 0.0 / 0; std::cout << a << b << c; // to stop compilers from optimising out the code. }Eu sempre pensei quea será + Inf,b será -Inf ec será NaN. Mas ...

1 a resposta

Iteração variável em si mesma - comportamento diferente com tipos diferentes

Dê uma olhada nas atualizações mais recentes no final do post. Em particular, consulteAtualização 4: a maldição de comparação de variantes Eu já vi companheiros batendo a cabeça na parede para entender como uma variante funciona, mas nunca ...

5 a resposta

Printf ("% x", 1) invoca um comportamento indefinido?

De acordo com a norma C (6.5.2.2, parágrafo 6) Se a expressão que denota a função chamada tiver um tipo que não inclua um protótipo, as promoções de números inteiros serão executadas em cada argumento e os argumentos que possuem o tipo float ...

1 a resposta

Existe uma regra especial para lambda em caso de decltype (auto)?

Se eu entendi corretamenteesta resposta [https://stackoverflow.com/a/44701336/4324224]e seção padrão referenciada [dcl.type.auto.deduct-5] [http://eel.is/c++draft/dcl.spec.auto#dcl.type.auto.deduct-5], o código: decltype(auto) a = e;é sempre ...

4 a resposta

Diferença de declaração e protótipo

Qual é a diferença entre declaração e protótipo em C? Em quais situações elas são chamadas de declarações e em quais protótipos?

2 a resposta

Pode-se obter um ponteiro para um elemento completo de representação de objeto de um ponteiro para um subojeto?

Vamos considerar este código: int i; int is[10]{}; unsigned char * p = reinterpret_cast<unsigned char*>(&i); //p defined to point to the object-representation of the first element of array ints unsigned char * ps = reinterpret_cast<unsigned ...

1 a resposta

Comportamento diferente entre elenco explícito, inicialização direta e inicialização de cópia

Eu tenho aulaC que tem um operador de casting para qualquer coisa. No exemplo, tentei lançar uma instância dele parastd::string de três maneiras diferentes:static_castconstrutor destd::string e atribuindo astd::string. No entanto, apenas o último ...

3 a resposta

Interconvertibilidade do ponteiro vs ter o mesmo endereço

orascunho da norma N4659 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf]diz: [basic.compound] Se dois objetos são interconversíveis por ponteiro, eles têm o mesmo endereço e depois observa que Um objeto de matriz e seu ...

4 a resposta

Comparando valores de ponto flutuante convertidos de strings com literais

Esta não é uma duplicata da famosaA matemática do ponto flutuante está quebrada [https://stackoverflow.com/questions/588004/is-floating-point-math-broken], mesmo que pareça um à primeira vista. Estou lendo umdouble de um arquivo de texto ...

2 a resposta

É garantido que os contêineres da biblioteca padrão C ++ chamam as novas funções substituíveis?

Se eu substituir todas asoperator new assinaturas que posso, pelo menos nas implementações que testei, vejo que os contêineres padrão chamam minhas versões substituídas para alocar memória. Isso é garantido pelo padrão? Ou seja, seria ilegal ...