Preguntas etiquetadas con language-lawyer

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






4
¿Cambio de ruptura en C ++ 20 o regresión en clang-trunk / gcc-trunk cuando se sobrecarga la comparación de igualdad con el valor de retorno no booleano?
El siguiente código se compila bien con clang-trunk en el modo c ++ 17 pero se rompe en el modo c ++ 2a (próximo c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) …


1
¿Por qué el compilador elige este método genérico con un parámetro de tipo de clase cuando se invoca con un tipo de interfaz no relacionado?
Considere las siguientes dos clases e interfaces: public class Class1 {} public class Class2 {} public interface Interface1 {} ¿Por qué la segunda llamada para mandatoryinvocar el método sobrecargado con Class2, si getInterface1y Interface1no tiene relación Class2? public class Test { public static void main(String[] args) { Class1 class1 = …

2
¿T tiene que ser un tipo completo para ser usado en `std :: declval <T>`?
Considere este ejemplo (viniendo de aquí ): #include &lt;type_traits&gt; #include &lt;iostream&gt; template &lt;typename U&gt; struct A { }; struct B { template &lt;typename F = int&gt; A&lt;F&gt; f() { return A&lt;F&gt;{}; } using default_return_type = decltype(std::declval&lt;B&gt;().f()); }; int main() { B::default_return_type x{}; std::cout &lt;&lt; std::is_same&lt; B::default_return_type, A&lt;int&gt;&gt;::value; } Se compila …

2
Deducción de tipos de argumentos de plantilla de plantilla C ++
Tengo un código que encuentra e imprime las coincidencias de un patrón que va sobre el contenedor de cadenas. La impresión se realiza en la función foo que tiene la plantilla El código #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;iterator&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;tuple&gt; #include &lt;utility&gt; template&lt;typename Iterator, template&lt;typename&gt; …

1
¿Se garantiza que un valor de char establecido en CHAR_MAX se ajuste a CHAR_MIN?
Mi código: #include &lt;stdio.h&gt; #include &lt;limits.h&gt; int main() { char c = CHAR_MAX; c += 1; printf("CHAR_MIN=%d CHAR_MAX=%d c=%d (%c)\n", CHAR_MIN, CHAR_MAX, c, c); } Salida: CHAR_MIN=-128 CHAR_MAX=127 c=-128 () Vemos que cuando incrementamos un charconjunto de variables en CHAR_MAX, se ajusta a CHAR_MIN. ¿Está garantizado este comportamiento? ¿O va …


1
InvalidOperationException inesperado al intentar cambiar la relación a través del valor predeterminado de la propiedad
En el código de ejemplo a continuación, obtengo la siguiente excepción al hacer db.Entry(a).Collection(x =&gt; x.S).IsModified = true: System.InvalidOperationException: 'La instancia del tipo de entidad' B 'no se puede rastrear porque ya se está rastreando otra instancia con el valor clave' {Id: 0} '. Al adjuntar entidades existentes, asegúrese de …



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.