Resultados da pesquisa a pedido "language-lawyer"
De onde vem a palavra "desreferenciação"?
Esta pergunta extrairá informações do rascunhoN1570 [http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf], então C11 basicamente. Coloquialmente, desreferenciar um ponteiro significa aplicar o* operador para um ponteiro. Há apenas um lugar ...
O Standard define a constante de ponteiro nulo para ter todos os bits definidos como zero?
(Estou citando ISO / IEC 9899: 201x) Aqui vemos que, a expressão constante inteira tem um tipo inteiro: 6.6 Expressões constantes 6Uma expressão constante inteira deve ter um tipo inteiro e deve ter apenas operandos que são constantes ...
É uma extensão do compilador em conformidade para tratar funções de biblioteca padrão não constexpr como constexpr?
gcc compila o seguinte código sem aviso: #include <cmath> struct foo { static constexpr double a = std::cos(3.); static constexpr double c = std::exp(3.); static constexpr double d = std::log(3.); static constexpr double e1 = std::asin(1.); ...
O tamanho de aninhado duas vezes pode ser uma expressão dependente?
Notei que o gcc 5.0 rejeita o código a seguir, enquanto o clang 3.6 o aceita. template<int n> struct I { typedef int Type; }; template<typename T> struct A { typedef I<sizeof(sizeof(T))>::Type Type; };Os dois compiladores parecem ...
Por que o caractere de espaço não foi escolhido para os separadores C ++ de 14 dígitos?
A partir do C ++ 14, graças an3781 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf](que por si só não responde a essa pergunta), podemos escrever um código como o seguinte: const int x = 1'234; // one thousand two hundred and ...
Aliasing Arrays através de estruturas
Estou lendo o parágrafo 7 de 6.5 na ISO / IEC 9899: TC2. Aceita o acesso do valor a um objeto através de: um tipo agregado ou união que inclui um dos tipos mencionados acima entre seus membros (incluindo, recursivamente, um membro de uma união ...
initializer_list com auto contém várias expressões
Pergunta bastante simples, auto x11 {1,2,3,4}; auto x1 = {1,2,3,4}; auto x22 {1.0, 2.25, 3.5}; auto x2 = {1.0, 2.25, 3.5};Até onde eu entendo, não deve haver diferença aqui em relação a ter= ou não. No entanto, usando o llvm / clang 6.0.0 (com ...
Operadores bit a bit e tipos assinados
Estou lendo o C ++ Primer e estou um pouco confuso com alguns comentários que falam sobre como os operadores Bitwise lidam com tipos assinados. Vou citar: Citação # 1 (Ao falar sobre operadores Bitwise) "Se o operando estiver assinado e seu ...
Qual é o significado desta parte do Standardese sobre o use_count () de shared_ptr?
Enquanto tentava entender o problema mostrado emessa questão [https://stackoverflow.com/questions/28111666/why-is-stdweak-ptrexpired-optimized-away?noredirect=1#comment44599229_28111666] Eu me vi preso à seguinte frase de [util.smartptr.shared] / ...
Por que o ID do modelo em "A <0> = 0" não é compilado sem espaço devido ao operador maior ou igual a "> ="?
template <int> using A = int; void f(A<0>=0); // Attempting to declare a function f taking int, // with the default argument 0 // Works as expected: // void f(A<0> = 0);Isso não compila emGCC 4.9.2 nem Clang ...