Preguntas con la etiqueta [language-lawyer]
Representación de trampa
¿Qué es una "representación trampa" en C (algunos ejemplos pueden ayudar)? ¿Esto se aplica a C++? Dado este código... float f=3.5; int *pi = (int*)&f; ... y suponiendo que sizeof(int)
Las alturas se representan de manera diferente en Chrome y Firefox [duplicado]
Descubrí que si configuramos un elemento a nivel de bloque con height:autoo height: 0~100%sin configurar la altura del padre con un valor explícito, y su hijo a nivel de bloque
¿Necesito convertir a un carácter sin firmar antes de llamar a toupper(), tolower(), et al.?
Hace un tiempo, alguien con gran reputación aquí en Stack Overflow escribió en un comentario que es necesario emitir un charargumento unsigned charantes de llamar std::touppera y std::tolower(y funciones similares).
¿Cuáles son las garantías de orden de evaluación introducidas por C++ 17?
¿Cuáles son las implicaciones de las garantías de orden de evaluación votadas en C++17 (P0145) en el código C++ típico? ¿Qué cambia en cosas como las siguientes? i = 1;
Acceso unidimensional a una matriz multidimensional: ¿es un comportamiento bien definido?
Me imagino que todos estamos de acuerdo en que se considera C idiomático acceder a una matriz multidimensional verdadera eliminando la referencia a un puntero (posiblemente desplazado) a su primer
¿Std::string siempre termina en nulo en C++ 11? [duplicar]
En una publicación de 2008 en su sitio, Herb Sutter afirma lo siguiente: Existe una propuesta activa para reforzar esto aún más en C++ 0x y requerir terminación nula y
Orden de evaluación de argumentos usando std::cout
Hola a todos, hoy me topé con este fragmento de código y no sé qué sucede exactamente y, más concretamente, en qué orden: Código: #include <iostream> bool foo(double & m)
¿Cuáles son la semántica precisa de las funciones a nivel de bloque en ES6?
Estoy tratando de entender las nuevas funciones estandarizadas a nivel de bloque en ES6 leyendo la especificación sin formato. Mi comprensión superficial fue: Las declaraciones de funciones a nivel de
¿Existen implementaciones de C que no sean complemento a dos?
Como sin duda todos sabemos , el estándar ISO C (y creo que también C++, aunque estoy más interesado en el lado C) permite tres representaciones subyacentes de números con
¿Puedo tomar la dirección de una función definida en la biblioteca estándar?
Considere el siguiente código: #include <cctype> #include <functional> #include <iostream> int main() { std::invoke(std::boolalpha, std::cout); // #1 using ctype_func = int(*)(int); char c = std::invoke(static_cast<ctype_func>(std::tolower), 'A'); // #2 std::cout <<
¿Dónde dice exactamente el estándar C++ que desreferenciar un puntero no inicializado es un comportamiento indefinido?
Hasta ahora no encuentro cómo deducir lo siguiente: int* ptr; *ptr = 0; es un comportamiento indefinido. En primer lugar, está 5.3.1/1 que indica que *significa indirección que se convierte
int a[] = {1,2,}; ¿Por qué se permite una coma final en una lista de inicializadores?
Quizás no soy de este planeta, pero me parecería que debería ser un error de sintaxis lo siguiente: int a[] = {1,2,}; //extra comma in the end Pero no lo
¿Es posible una referencia nula?
¿Es este fragmento de código válido (y comportamiento definido)? int &nullReference = *(int*)0; Tanto g++ como clang++ lo compilan sin previo aviso, incluso cuando se usa -Wall, -Wextra, -std=c++98, -pedantic,
Tome la dirección de un elemento de matriz pasado el final mediante un subíndice: ¿es legal según el estándar C++ o no?
He visto afirmar varias veces que el estándar C++ no permite el siguiente código: int array[5]; int *array_begin = &array[0]; int *array_end = &array[5]; ¿Es &array[5]el código C++ legal en
¿Cuáles son las firmas válidas para la función main() de C?
¿Cuáles son realmente las firmas válidas para la función principal en C? Lo sé: int main(int argc, char *argv[]) ¿Hay otros válidos?