Resultados da pesquisa a pedido "language-lawyer"

3 a resposta

É possível acessar além do tamanho de uma estrutura via endereço do membro, com espaço suficiente alocado?

Especificamente, o código a seguir é a linha abaixo do marcador, OK? struct S{ int a; }; #include <stdlib.h> int main(){ struct S *p; p = malloc(sizeof(struct S) + 1000); // This line: *(&(p->a) + 1) = 0; }As pessoas discutiramaqui ...

2 a resposta

A desreferenciação de ponteiros inválidos é legal se não ocorrer uma conversão lvalue para rvalue

Por mais que eu tente, a resposta mais próxima que eu já vi éesta [https://stackoverflow.com/questions/7346634/dereferencing-an-invalid-pointer-then-taking-the-address-of-the-result/7346775] , com duas respostas completamente opostas (!) A ...

4 a resposta

Referência de método ao método de interface privada

Considere o seguinte código: public class A { public static void main(String[] args) { Runnable test1 = ((I)(new I() {}))::test; // compiles OK Runnable test2 = ((new I() {}))::test; // won't compile } interface I { private void test() {} } }Eu ...

3 a resposta

Existe uma razão pela qual não podemos nomear uma função membro não estática em um contexto não avaliado?

Ao ler[expr.prim.id] [https://timsong-cpp.github.io/cppwp/n4659/expr.prim.id], verá que Uma expressão id que denota um membro de dados não estático ou função de membro não estático de uma classe pode ser usada apenas: se essa expressão de id ...

1 a resposta

Um vetor com tipo incompleto é permitido se absolutamente nenhuma função membro for chamada? Se sim, desde quando?

Suponha que eu tenha algum tipo incompleto // in foo.hh struct Hidden;que eu quero usar como tipo de elemento de umstd::vector. Usando umunion Eu posso "adiar" chamadas para o (s) construtor (es) e o destruidor dostd::vector à implementação do ...

2 a resposta

Como P0522R0 está quebrando o código?

Hoje eu estava lendo a página de suporte do C ++ 17 do clang. Eu notei algo estranho. A característicaCorrespondência de parâmetros de modelo a argumentos compatíveis ...

1 a resposta

Sobrecarregando estruturas com operador de chamada de modelo e lambdas genéricas - gcc vs clang

Eu descobri um trecho de código que compila e funciona corretamente emclang ++ 4 (e tronco)mas falha ao compilarg ++ 7 (e tronco). Vamos assumir que tenho o seguintestruct tipos: struct a { void foo() { } }; struct b { void bar() { } }; struct c ...

1 a resposta

Quais declarações de objeto em C fazem com que o armazenamento seja reservado (ou seja, são definições)?

C11 especifica na seção 6.7 quais declarações também são definições: Uma definição de um identificador é uma declaração para esse identificador que: - para um objeto, faz com que o armazenamento seja reservado para esse objeto; [...] Não ...

4 a resposta

Como essa estrutura pode ter sizeof == 0?

Há um post antigo solicitando uma construção para a qualsizeof retornaria0. Existem respostas de alta pontuação de usuários de alta reputação dizendo que, por padrão, nenhum tipo ou variável pode ter tamanho de 0. E eu concordo 100% com isso. No ...

1 a resposta

O decltype (auto) para uma ligação estruturada deve ser uma referência?

Considere um exemplo: #include <iostream> #include <type_traits> #include <tuple> int main() { auto tup = std::make_tuple(1, 2); auto [ a, b ] = tup; decltype(auto) e = a; std::cout << std::boolalpha << std::is_reference_v<decltype(e)> << ...