Articles of c ++ 11

¿Qué implementaciones std :: async usan grupos de hilos?

Se supone que una de las ventajas de usar std::async lugar de crear manualmente objetos std::thread es que std::async puede usar pools de hilos bajo las cubiertas para evitar problemas de sobresuscripción. Pero, ¿qué implementaciones hacen esto? Según tengo entendido, la implementación de Microsoft sí lo hace, pero ¿qué hay de estas otras implementaciones async […]

Reducir las conversiones en C ++ 0x. ¿Soy solo yo, o suena esto como un cambio radical?

C ++ 0x va a hacer que el siguiente código y el código similar estén mal formados, porque requiere una llamada conversión de estrechamiento de un double a un int . int a[] = { 1.0 }; Me pregunto si este tipo de inicialización se usa mucho en el código del mundo real. ¿Cuántas claves […]

¿Cómo inicializo una matriz miembro con una initializer_list?

Me estoy poniendo al día con C ++ 0x y estoy probando cosas con g ++ 4.6 Acabo de probar el siguiente código, pensando que funcionaría, pero no comstack. Me sale el error: incompatible types in assignment of ‘std::initializer_list’ to ‘const int [2]’ struct Foo { int const data[2]; Foo(std::initializer_list& ini) : data(ini) {} }; […]

sobrecarga constexpr

Relacionado: la función que devuelve constexpr no comstack Siento que el uso de Constexpr es limitado en C ++ 11 debido a la incapacidad de definir dos funciones que de otro modo tendrían la misma firma, pero uno debe ser constestable y el otro no constestable. En otras palabras, sería muy útil si pudiera tener, […]

¿Qué expresiones producen un tipo de referencia cuando se aplica decltype a ellas?

Estaba leyendo C ++ Primer y no pude entender bien cuándo una expresión produce un tipo de objeto y cuándo produce un tipo de referencia para el objeto. Cito del libro: Cuando aplicamos decltype a una expresión que no es una variable, obtenemos el tipo que produce esa expresión. En general, decltype devuelve un tipo […]

const &, & y && especificadores para funciones miembro en C ++

Recientemente estuve leyendo la API de boost::optional y encontré las líneas: T const& operator *() const& ; T& operator *() & ; T&& operator *() && ; También escribí mi propio progtwig que define las funciones de los miembros como const &, & y && (Tenga en cuenta que no estoy hablando del tipo de […]

Diferencia entre std :: system_clock y std :: steady_clock?

¿Cuál es la diferencia entre std::system_clock y std::steady_clock ? (Un ejemplo de caso que ilustra diferentes resultados / comportamientos sería genial). Si mi objective es medir con precisión el tiempo de ejecución de las funciones (como un punto de referencia), ¿cuál sería la mejor opción entre std::system_clock , std::steady_clock y std::high_resolution_clock ?

¿Cómo puedo ordenar dos vectores de la misma manera, con criterios que usan solo uno de los vectores?

¿Cómo puedo ordenar dos vectores de la misma manera, con criterios que usan solo uno de los vectores? Por ejemplo, supongamos que tengo dos vectores del mismo tamaño: vector vectorA; vector vectorB; Luego clasifico vectorA usando alguna función de comparación. Ese vectorA reordenado de clasificación vectorA ¿Cómo puedo hacer que se aplique el mismo reordenamiento […]

std :: shared_ptr thread safety explain

Estoy leyendo http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html y algunos problemas de seguridad de subprocesos aún no están claros para mí: Standard garantiza que el recuento de referencias se maneja con seguridad de subprocesos y es independiente de la plataforma, ¿verdad? Problema similar: garantías estándar de que solo un hilo (que contiene la última referencia) llamará a eliminar en el […]

Usando std :: bind con la función de miembro, use el puntero del objeto o no para este argumento?

Al usar std::bind para enlazar una función miembro, el primer argumento es el objeto this puntero. Sin embargo, funciona pasando el objeto como un puntero y no como. Ver por ejemplo el siguiente progtwig: #include #include struct foo { void bar(int v) { std::cout << "foo::bar – " << v << '\n'; } }; int […]