Resultados da pesquisa a pedido "language-lawyer"

1 a resposta

O C ++ como padrão proíbe o armazenamento de funções de membro dentro de instâncias de classe individuais?

Nas implementações de C ++, normalmente o código não é armazenado (de qualquer forma) nas instâncias de classe. O segmento de código não está no mesmo espaço de memória que objetos e similares. Isso significa que as funções de membro não são ...

1 a resposta

Por que `void * = 0` e` void * = nullptr` fazem a diferença?

Eu estava brincando com a SFINAE e encontrei um comportamento que não consigo explicar. estecompila bem [https://ideone.com/HDlWP7]: template<typename Integer, std::enable_if_t<std::is_integral<Integer>::value>* = nullptr> void foo(Integer) {} ...

2 a resposta

Capturando uma referência por referência em um lambda C ++ 11

Considere isto: #include <functional> #include <iostream> std::function<void()> make_function(int& x) { return [&]{ std::cout << x << std::endl; }; } int main() { int i = 3; auto f = make_function(i); i = 5; f(); }É garantido que este programa ...

1 a resposta

Tratar um único objeto como uma matriz com um elemento, usando o ponteiro de um passado-final

Preâmbulo:É sabido que levar o ponteiro um após o final de uma matriz é legal e bem definido: int main() { int na [1] = {}; const int* naBegin = na; const int* naEnd = na + 1; // one-past-end, OK }Esse ponteiro pode ser usado em comparações, o ...

1 a resposta

O que o padrão diz sobre o acesso desalinhado à memória?

Eu procurei no padrão sobre acesso desalinhado, mas não encontrei nada (talvez eu tenha sido inadvertido). É um comportamento indefinido? A implementação está definida? Como muitas CPUs atuais suportam acesso não alinhado, seria sensato que o ...

1 a resposta

Acesso à variável constexpr dentro da expressão lambda sem capturar

No exemplo a seguir, eu posso acessar oconstexpr variávelx de dentro do lambday sem capturá-lo explicitamente. Isso não é possível sex não é declarado comoconstexpr. Existem regras especiais que se aplicam aconstexpr para capturar? int foo(auto ...

2 a resposta

As implementações têm permissão para adicionar membros públicos a tipos padrão?

As implementações da biblioteca padrão do C ++ podem adicionar membros públicos (e protegidos) às interfaces dos tipos padrão? N3797 17.6.5.5 [member.functions] / 2 diz: Uma implementação pode declarar assinaturas adicionais de função de membro ...

3 a resposta

C ++ 11 exemplo de um valor e um objeto na biblioteca padrão?

Em C ++ 11 3p3, afirma: Uma entidade é umavalor, objeto, referência, função, enumerador, tipo, membro da classe, modelo, especialização de modelo, espaço para nome, pacote de parâmetros ou este. Em 17.6.1.1p1, declara: A biblioteca padrão C ++ ...

3 a resposta

Eu realmente preciso implementar o construtor fornecido pelo usuário para objetos const?

Eu tenho o código: class A { public: A() = default; private: int i = 1; }; int main() { const A a; return 0; }Compila bem no g ++ (consulteideona [http://ideone.com/PryGs5]), mas falha no clang ++ com erro: A inicialização padrão de um objeto ...

2 a resposta

C ++ 14: você pode chamar de novo em um constexpr?

Quando o C ++ 14 levantou restrições sobreconstexpr parecia incluir o seguinte (copiado deWikipedia [http://en.wikipedia.org/wiki/C++14#Relaxed_constexpr_restrictions]): Expressões podem alterar o valor de um objeto se a vida útil desse ...