No entiendo muy bien por qué no obtengo una excepción de división por cero: int d = 0; d /= d; Esperaba obtener una división por excepción cero, pero en cambio d == 1. ¿Por qué no d /= dlanza una excepción de división por cero cuando d == 0?
No entiendo muy bien por qué no obtengo una excepción de división por cero: int d = 0; d /= d; Esperaba obtener una división por excepción cero, pero en cambio d == 1. ¿Por qué no d /= dlanza una excepción de división por cero cuando d == 0?
La siguiente implementación de square produce una serie de sentencias cmp / je como esperaría de una sentencia if encadenada: int square(int num) { if (num == 0){ return 0; } else if (num == 1){ return 1; } else if (num == 2){ return 4; } else if (num == 3){ return 9; } else if (num ==...
Noté algo curioso en mi computadora. * La prueba de divisibilidad escrita a mano es significativamente más rápida que la del %operador. Considere el ejemplo mínimo: * AMD Ryzen Threadripper 2990WX, GCC 9.2.0 static int divisible_ui_p(unsigned int m, unsigned int a) { if (m <= a) { if (m ==...
¿Por qué gcc llena toda la matriz con ceros en lugar de solo los 96 enteros restantes? Los inicializadores distintos de cero están todos al inicio de la matriz. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier...
Recientemente me he encontrado con un problema relacionado con la concatenación de cadenas. Este punto de referencia lo resume: @OutputTimeUnit(TimeUnit.NANOSECONDS) public class BrokenConcatenationBenchmark { @Benchmark public String slow(Data data) { final Class<? extends Data> clazz =...
Quiero hacer un registro de hilo en mi clase, así que decido agregar un cheque para la thread_localfunción: #include <iostream> #include <thread> class Foo { public: Foo() { std::cout << "Foo()" << std::endl; } ~Foo() { std::cout << "~Foo()" <<...
Recientemente encontré algo similar a las siguientes líneas: #include <string> // test if the extension is either .bar or .foo bool test_extension(const std::string& ext) { return ext == ".bar" || ".foo"; // it obviously should be // return ext == ".bar" || ext == ".foo"; } La...
En el siguiente ejemplo de código, la ifinstrucción depende del boolparámetro de plantilla, que es una constante en tiempo de compilación. Los compiladores manejan este código de manera diferente: MSVC falla con el error de enlace (que es lo que esperaba), porque la función de plantilla en la...