Articles of c ++ 11

Rango basado para bucle en matriz pasado a la función no principal

Cuando bash comstackr el siguiente código en gcc 4.8.2, aparece el siguiente error: test.cc: In function ‘void foo(int*)’: test.cc:15:16: error: no matching function for call to ‘begin(int*&)’ for (int i : bar) { ^ Junto con un montón de otros de más profundidad en la biblioteca de plantillas. #include using namespace std; void foo(int*); int […]

Hash un valor de precisión arbitrario (boost :: multiprecision :: cpp_int)

Necesito obtener el hash de valor con precisión arbitraria (de Boost.Multiprecision); Yo uso el backend cpp_int . Por ahora, se me ocurrió el siguiente código: boost::multiprecision::cpp_int x0 = 1; const auto seed = std::hash{}(x0.str()); No necesito que el código sea lo más rápido posible, pero me parece muy torpe el uso de la representación de […]

¿Por qué este código intenta llamar al constructor de copia?

Acabo de pasar una cantidad desorbitada de tiempo jugando con un error de comstackción en Visual Studio. He destilado el código en el pequeño ejemplo comstackble a continuación y lo probé en IdeOne y obtuve el mismo error que puede ver aquí . Me pregunto por qué el siguiente código intenta llamar a B(const B&) […]

¿Debo incluir cada encabezado?

¿Debo incluir cada encabezado, incluso si se incluyó antes? O tal vez debería evitarlo cuando puedo? Por ejemplo. Si uso std::string y std::vector en algún archivo. Si incluye debería incluir solo o y ?

Punteros en c ++ después de eliminar

Después de leer muchas publicaciones sobre esto, quiero aclarar el siguiente punto: A* a = new A(); A* b = a; delete a; A* c = a; //illegal – I know it (in c++ 11) A* d = b; //I suppose it’s legal, is it true? Entonces, la pregunta es sobre usar el valor de […]

Usando `std :: function ` para llamar a la función no-vacía

Hace un tiempo utilicé std::function o menos así: std::function func = [](int i) -> int { return i; }; Básicamente, hice esto porque quería almacenar diferentes objetos de función en una std::function , pero no quería restringir los tipos de devolución de estas funciones. Como esto parecía funcionar, lo hice. Pero no estoy convencido de […]

¿Qué funciones de Boost se superponen con C ++ 11?

Puse mis habilidades en C ++ en el estante hace varios años y parece que ahora, cuando los necesito de nuevo, el paisaje ha cambiado. Ahora tenemos C ++ 11, y tengo entendido que se superpone a muchas funciones de Boost. ¿Hay algún resumen donde se encuentran esas superposiciones, qué bibliotecas de Boost se convertirán […]

Cambio de comportamiento de istream en C ++ cuando falla

Tomar de: cppreference Hasta C ++ 11: Si la extracción falla (por ejemplo, si se ingresó una letra donde se espera un dígito), el valor queda sin modificar y se establece el bit de falla. Desde C ++ 11: Si la extracción falla, cero se escribe en valor y se establece failbit. Si la extracción […]

Mezcla de C ++ 11 atómica y OpenMP

OpenMP tiene su propio soporte para el acceso atómico, sin embargo, hay al menos dos razones para preferir Cómica 11 atómica: son significativamente más flexibles y son parte del estándar. Por otro lado, OpenMP es más poderoso que la biblioteca de hilos C ++ 11. El estándar especifica la biblioteca de operaciones atómicas y la […]

Mover constructor para std :: mutex

Muchas clases en la biblioteca estándar de c ++ ahora tienen constructores de movimiento, por ejemplo – thread::thread(thread&& t) Pero parece que std :: mutex no. Entiendo que no pueden copiarse, pero parece tener sentido poder devolver uno de una función “make_mutex”, por ejemplo. (No digo que sea útil, solo que tiene sentido) ¿Hay alguna […]