Perguntas com a marcação «language-lawyer»

Para perguntas sobre os meandros das especificações formais ou oficiais das linguagens e ambientes de programação.



1
Clang está correto ao rejeitar o código no qual a classe aninhada de um modelo de classe é definida apenas por meio de especializações?
Dado o seguinte modelo de classe: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; definimos Innerseparadamente para cada especialização de Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; e defina a função de membro fuma vez para todas as especializações de Outer: auto Outer<T>::f(Inner) -> …

1
Sizeof (enum) pode diferir de sizeof (std :: subjac_type <Enum> :: type)?
Recentemente, surgiu uma revisão de código que, no exemplo a seguir: enum class A : uint8_t { VAL1, VAL2 }; ... std::vector&lt;A&gt; vOfA; // Assume this is sized and full of some stuff. std::memcpy(wire_buffer, vOfA.data(), vOfA.size() * sizeof(A)); Deveríamos estar usando em sizeof(std::underlying_type&lt;A&gt;::type)vez de sizeof(A). É possível que estes possam …







1
Isso é um bug no std :: gcd?
Me deparei com esse comportamento std::gcdque achei inesperado: #include &lt;iostream&gt; #include &lt;numeric&gt; int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type&lt;decltype(a), decltype(b)&gt;::type; C ca = std::abs(a); C cb = b; std::cout &lt;&lt; a &lt;&lt; ' …

2
Por que não podemos criar objetos trivialmente construtíveis usando malloc se o construtor trivial padrão não executa nenhuma ação?
Tenho dificuldade em entender o parágrafo a seguir citado na cppreference sobre o construtor padrão trivial. Pesquisei stackoverflow, mas ainda não recebi uma resposta clara. Então por favor ajude. Um construtor padrão trivial é um construtor que não executa nenhuma ação. Todos os tipos de dados compatíveis com a linguagem …


4
A explicação de uma ordem relaxada é errônea na preferência?
Na documentação de std::memory_orderem cppreference.com, há um exemplo de pedido relaxado: Ordenação descontraída As operações atômicas marcadas memory_order_relaxednão são operações de sincronização; eles não impõem uma ordem entre acessos simultâneos à memória. Eles garantem apenas consistência de ordem de atomicidade e modificação. Por exemplo, com xey inicialmente zero, // Thread …


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.