Resultados da pesquisa a pedido "undefined-behavior"

1 a resposta

É ilegal usar os modificadores h ou hh length quando o argumento correspondente a printf não era um short / char?

oprintf A família de funções fornece uma série de modificadores de comprimento, sendo dois deleshh (denotando umsigned char ouunsigned char argumento promovido paraint) eh (denotando umsigned short ouunsigned short argumento promovido paraint) ...

4 a resposta

Bug de compilação em C ++?

Eu tenho o seguinte código: #include <iostream> #include <complex> using namespace std; int main() { complex<int> delta; complex<int> mc[4] = {0}; for(int di = 0; di < 4; di++, delta = mc[di]) { cout << di << endl; } return 0; }Espero que ...

2 a resposta

A passagem de um objeto C ++ para seu próprio construtor é legal?

Surpreende-me descobrir acidentalmente que o seguinte funciona: #include <iostream> int main(int argc, char** argv) { struct Foo { Foo(Foo& bar) { std::cout << &bar << std::endl; } }; Foo foo(foo); // I can't believe this works... std::cout << ...

1 a resposta

Comportamento indefinido ou: Swift tem pontos de sequência?

Em C / C ++, a segunda instrução em int i = 0; int j = i++ + i++ + ++i;invoca ambos comportamento não especificado, porque a ordem de avaliação dos operandos não é especificada ecomportamento indefinido, porque os efeitos colaterais no ...

4 a resposta

É um comportamento definido fazer referência a um membro inicial de uma expressão de membro posterior durante a inicialização agregada?

Considere o seguinte: struct mystruct { int i; int j; }; int main(int argc, char* argv[]) { mystruct foo{45, foo.i}; std::cout << foo.i << ", " << foo.j << std::endl; return 0; } Observe o uso defoo.i na lista agregador-inicializador. g++ 5.2.0 ...

9 a resposta

Chamar explicitamente o destruidor resulta em Comportamento indefinido aqui?

Na minha opinião, o código a seguir (de alguma pergunta em C ++) deve levar ao UB, mas parece que não é. Aqui está o código: #include <iostream> using namespace std; class some{ public: ~some() { cout<<"some's destructor"<<endl; } }; int main() ...

2 a resposta

Por que a troca XOR com números inteiros dispara um aviso?

Digitei o seguinte programa: #include <stdio.h> int main(void) { int a = 3; int b = 42; printf("a = %d\nb = %d\n", a, b); printf("Exchanging values.\n"); a ^= b ^= a ^= b; printf("a = %d\nb = %d\n", a, b); return 0; }e está tudo bem. Quando ...

2 a resposta

A cópia de objetos trivialmente copiáveis é sempre definida no C ++ 14?

Paratrivialmente copiável [http://en.cppreference.com/w/cpp/concept/TriviallyCopyable]tipo T considere: void f(T z) { T a; T b; std::memcpy(&b, &a, sizeof(T)); a = z; b = z; // ... }O comportamento desse fragmento é definido em C ++ 14 se T é ...

2 a resposta

Como suprimir alguns erros de número inteiro não assinado do UBsan?

A maioria dos meus-fsanitize=unsigned-integer-overflow erros são erros, mas às vezes eu o uso explicitamente como pretendido, o que resulta no UBSan produzindo falsos positivos. Existe uma maneira de desativar a verificação do UBSan ...

3 a resposta

É um comportamento indefinido memcpy de uma variável não inicializada?

Está usando uma variável não inicializada como osrc paramemcpy comportamento indefinido em C? void foo(int *to) { int from; memcpy(to, &from, sizeof(from)); }