Preguntas etiquetadas con language-lawyer

Para preguntas sobre las complejidades de las especificaciones formales o autorizadas de los lenguajes y entornos de programación.

2
¿La prioridad / prioridad del operador de flecha (->) es la más baja, o la prioridad de la asignación / asignación combinada es la más baja?
JLS : El operador de precedencia más baja es la flecha de una expresión lambda (->) , seguida de los operadores de asignación. ¿Seguido en qué dirección (prioridad creciente, prioridad decreciente)? - "seguido" significa que la asignación tiene mayor o menor prioridad (con respecto al operador de flecha)? Supongo que, …



1
¿Es correcto Clang para rechazar el código en el que la clase anidada de una plantilla de clase se define solo a través de especializaciones?
Dada la siguiente plantilla de clase: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; Definimos Innerpor separado para cada especialización de Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; y luego defina la función miembro funa vez para todas las especializaciones de Outer: auto Outer<T>::f(Inner) …

1
¿Puede sizeof (enum) diferir de sizeof (std :: subyacente_tipo <Enum> :: type)?
Recientemente apareció en una revisión de código que en el siguiente ejemplo: 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)); Deberíamos estar usando en sizeof(std::underlying_type&lt;A&gt;::type)lugar de sizeof(A). ¿Es posible que estos …







1
¿Es esto un error en std :: gcd?
Me he encontrado con este comportamiento std::gcdque encontré 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 qué no podemos crear objetos trivialmente construibles usando malloc si el constructor trivial predeterminado no realiza ninguna acción?
Tengo dificultades para comprender el siguiente párrafo citado de cppreference sobre el constructor trivial predeterminado. He buscado stackoverflow pero aún no obtuve una respuesta clara. Así que por favor ayuda. Un constructor predeterminado trivial es un constructor que no realiza ninguna acción. Todos los tipos de datos compatibles con el …


4
¿La explicación del orden relajado es errónea en la preferencia?
En la documentación de std::memory_ordercppreference.com hay un ejemplo de pedido relajado: Pedidos relajados Las operaciones atómicas etiquetadas memory_order_relaxedno son operaciones de sincronización; no imponen un orden entre los accesos concurrentes de memoria. Solo garantizan la atomicidad y la coherencia del orden de modificación. Por ejemplo, con x e y inicialmente …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.