Resultados da pesquisa a pedido "language-lawyer"
Esse código em C se enquadra na categoria Comportamento indefinido?
a é uma matriz,foo é uma função ei é umint. a[++i] = foo(a[i-1], a[i]);O código acima teria umComportamento indefinido? Os índices da matriz++i, i-1 ei, são garantidos para estar no intervalo da matriz.
Os bytes subjacentes de um objeto podem mudar, se o valor não for alterado?
Os bytes subjacentes de um objeto podem mudar, se o valor em si não for alterado? Então, por exemplo, esse trecho de código pode ser "diferente"? int a = 0; char b[sizeof(int)]; memcpy(b, &a, sizeof(int)); if (memcmp(b, &a, sizeof(int)) { ...
constexpr: definição e declaração para membros constexpr
Se eu quiser usar algumas coisas de conveniência, comomake_array Não tenho chance de declarar minha matriz primeiro e, posteriormente, fazer a definição como feita em tempos "anteriores", porque o tipo de meu var não está disponível antes da ...
Por que o gcc e o clang produzem resultados diferentes para este programa? (operador de conversão x construtor)
programa: #include <stdio.h> struct bar_t { int value; template<typename T> bar_t (const T& t) : value { t } {} // edit: You can uncomment these if your compiler supports // guaranteed copy elision (c++17). Either way, it // doesn't affect the ...
Uma união ou estrutura permite a atribuição de uma instância não inicializada?
Esta pergunta é sobre a definição ou não de atribuir uma variável automática não-inicializada a outra do mesmo tipo. Considerar typedef struct { int s1; int s2; } Foo; typedef union { int u1; Foo u2; } Bar; int main() { { int a; int b = a; // ...
Colocação nova e atribuição de classe com membro const
Por que esse comportamento indefinido? struct s { const int id; // <-- const member s(int id): id(id) {} s& operator =(const s& m) { return *new(this) s(m); // <-- undefined behavior? } };(Citação do padrão seria bom). Esta questão surgiu ...
Fundição de referência r-value e materialização temporária
A saída para o código abaixo produz: void doit(const T1 &, const T2 &) [T1 = unsigned long, T2 = int] t1 == t2 t1 == (T1)t2 t1 != (T1&)t2 t1 == (T1&&)t2Eu entendo que ot1 == t2 caso é simplesmente uma promoção integral. O segundo casot1 == ...
Modelo de memória C ++: as cargas seq_cst são sincronizadas com as lojas seq_cst?
No modelo de memória C ++, há uma ordem total em todas as cargas e armazenamentos de todas as operações sequencialmente consistentes. Eu estou querendo saber como isso interage com operações que têm outros pedidos de memória que são seqüenciados ...
Os parâmetros de modelo não-tipo no c ++ 17 podem ser decltype (auto)?
Eu descobri que o gcc e o clang permitem usardecltype(auto) na cláusula de tipo de parâmetro do modelo não-tipo. Por exemplo.: template <decltype(auto)> struct X {}; int foo ; int main() { X<(foo)> x; static_cast<void>(x); }[demonstração ao vivo ...
O padrão C exige que o tamanho de uma matriz de n elementos seja n vezes o tamanho de um elemento?
O padrão C exige que o tamanho de uma matriz den elementos sejamn vezes o tamanho de um elemento, seja por declaração explícita ou por dedução lógica rigorosa de seus requisitos? Por exemplo, poderiaint (*x)[5] = malloc(5 * sizeof **x); falha ao ...