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
¿Por qué hay clases de máquinas de estado asíncronas (y no estructuras) en Roslyn?
Consideremos este método asincrónico muy simple: static async Task myMethodAsync() { await Task.Delay(500); } Cuando compilo esto con VS2013 (compilador anterior a Roslyn), la máquina de estado generada es una estructura. private struct <myMethodAsync>d__0 : IAsyncStateMachine { ... void IAsyncStateMachine.MoveNext() { ... } } Cuando lo compilo con VS2015 (Roslyn), …





6
Funciones puras: ¿"Sin efectos secundarios" implica "Siempre la misma salida, dada la misma entrada"?
Las dos condiciones que definen una función pureson las siguientes: Sin efectos secundarios (es decir, solo se permiten cambios en el alcance local) Devuelve siempre la misma salida, dada la misma entrada Si la primera condición es siempre verdadera, ¿hay ocasiones en las que la segunda condición no es verdadera? …


2
¿Todavía es seguro eliminar nullptr en c ++ 0x?
En c++03está bastante claro que eliminar un puntero nulo no tiene ningún efecto. De hecho, se afirma explícitamente en §5.3.5/2que: En cualquier alternativa, si el valor del operando de eliminar es el puntero nulo, la operación no tiene ningún efecto. Sin embargo, en el borrador actual de c++0xesta oración parece …

6
¿`New` en` new int; `se considera un operador?
La expresión new int;como en int * x = new int;es una nueva expresión . El término "nuevo operador" parece usarse indistintamente con "nueva expresión", por ejemplo en esta pregunta: ¿ Diferencia entre 'nuevo operador' y 'operador nuevo'? ¿Es correcto decir que la palabra clave newtal como se usa en …


2
std :: ignore con enlaces estructurados?
Preludio: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z introducirá sintaxis para enlaces estructurados que permitirán escribir en lugar de int a, b, c; std::tie(a, b, c) = f(); algo como auto [a, b, c] = f(); Sin embargo, std::tietambién se permite especificar std::ignoreque se ignoren …


4
¿Cómo puede esta estructura tener un tamaño de == 0?
Hay una publicación antigua que solicita una construcción por la que sizeofregresaría 0. Hay algunas respuestas de alta puntuación de usuarios de alta reputación que dicen que, según el estándar, ningún tipo o variable puede tener un tamaño de 0. Y estoy 100% de acuerdo con eso. Sin embargo, existe …


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.