Resultados da pesquisa a pedido "language-lawyer"

5 a resposta

“Inicializador de membro padrão necessário dentro da definição de classe envolvente fora das funções de membro” - meu código está mal formado?

#include <utility> struct foo { int x{0}; foo() noexcept = default; void f() noexcept(noexcept(std::declval<foo&>())) {} }; int main() { }exemplo ao vivo no godbolt [https://godbolt.org/g/6RcGxn] O código acima é compilado com qualquer versão do ...

1 a resposta

Quais são as mudanças, se houver, nas regras de initalização da vida útil do novo padrão?

Até onde eu saiba,memcpy em armazenamento não inicializadonão podes [https://stackoverflow.com/q/30114397/149138]ser usado com segurança para criar uma cópia do objeto de origem. No entanto, emesta ...

3 a resposta

Por que S :: x não é usado por odr?

Considere este exemplo decppreference [http://en.cppreference.com/w/cpp/language/definition]: struct S { static const int x = 1; }; void f() { &S::x; } // discarded-value expression does not odr-use S::xEu concordo que&S::x é umexpressão de ...

2 a resposta

O nome do modelo <TT> é um contexto deduzido?

[temp.deduct.type] parágrafo 8 [http://eel.is/c++draft/temp.deduct.type#8]lista todos os contextos deduzidos, mas parece não incluirtemplate-name<TT> Ondetemplate-name refere-se a um modelo de classe eTT refere-se a um argumento de modelo de ...

2 a resposta

Por que a função declarada dentro de outra função não participa da pesquisa dependente de argumento?

Considere um exemplo simples: template <class T> struct tag { }; int main() { auto foo = [](auto x) -> decltype(bar(x)) { return {}; }; tag<int> bar(tag<int>); bar(tag<int>{}); // <- compiles OK foo(tag<int>{}); // 'bar' was not declared in this ...

2 a resposta

É legal otimizar lojas externas / construção de variáveis de pilha voláteis?

Percebi que o clang e o gcc otimizam a construção ou a atribuição a um componente volátil.struct declarado na pilha, em alguns cenários. Por exemplo, o seguinte código: struct nonvol2 { uint32_t a, b; }; void volatile_struct2() { volatile ...

2 a resposta

Qual compilador, se houver algum, possui um erro na expansão do pacote de parâmetros?

Ao experimentar maneiras convenientes de acessar tuplas como contêineres, escrevi um programa de teste. no clang (3.9.1 e apple clang), ele compila conforme o esperado, produzindo a saída esperada: 1.1 foo 2no gcc (5.4, 6.3), ele falha ao ...

1 a resposta

'A' e '0' sempre têm valores positivos, mesmo que char seja assinado?

Dependendo das configurações do ambiente e do compilador, o tipochar pode ser assinado ou não assinado por padrão, o que significa que o intervalo de valores para constantes de um caractere nos sistemas complementares de 8 bits 2s ...

1 a resposta

Não é possível acessar o membro protegido de outra instância do escopo do tipo derivado

Noesta resposta [https://stackoverflow.com/a/17717142/5470596]para a pergunta "Por que meu objeto não pode acessar membros protegidos de outro objeto definido na classe base comum?", pode-se ler: Você pode acessar apenas membros protegidos de ...

3 a resposta

Existem garantias para uniões que contêm um tipo de quebra automática e o próprio tipo?

Posso colocar umT e um embrulhadoT em umunion e inspecioná-los como eu gosto? union Example { T value; struct Wrapped { T wrapped; } wrapper; }; // for simplicity T = int Example ex; ex.value = 12; cout << ex.wrapper.wrapped; // ?Os padrões C ++ ...