Articles of c ++ 11

¿Qué sucede con un hilo separado cuando sale main ()?

Supongamos que estoy iniciando un std::thread y luego se lo detach() , por lo que el hilo continúa ejecutándose a pesar de que el std::thread que una vez lo representó, sale del scope. Supongamos además que el progtwig no tiene un protocolo confiable para unir el subproceso separado 1 , por lo que el subproceso […]

Comstack el hash de cadena de tiempo

He leído en algunos lugares diferentes que utilizando los nuevos literales de cadena de C ++ 11 podría ser posible calcular el hash de una cadena en el momento de la comstackción. Sin embargo, nadie parece estar listo para salir y decir que será posible o cómo se haría. es posible? ¿Cómo se vería el […]

¿Cuál es el tipo de lambda cuando se deduce con “auto” en C ++ 11?

Tenía la percepción de que el tipo de lambda es un puntero a la función. Cuando realicé la siguiente prueba, descubrí que estaba equivocada ( demo ). #define LAMBDA [] (int i) -> long { return 0; } int main () { long (*pFptr)(int) = LAMBDA; // ok auto pAuto = LAMBDA; // ok assert(typeid(pFptr) […]

Funciones lambda recursivas en C ++ 11

Soy nuevo en C ++ 11. Estoy escribiendo la siguiente función recursiva lambda, pero no comstack. sum.cpp #include #include auto term = [](int a)->int { return a*a; }; auto next = [](int a)->int { return ++a; }; auto sum = [term,next,&sum](int a, int b)mutable ->int { if(a>b) return 0; else return term(a) + sum(next(a),b); }; […]

¿Cuál es la ventaja de usar referencias universales en bucles basados ​​en rangos?

const auto& sería suficiente si quiero realizar operaciones de solo lectura. Sin embargo, me he topado con for (auto&& e : v) // v is non-const un par de veces recientemente. Esto me hace pensar: ¿Es posible que en algunos casos oscuros de esquina haya algún beneficio de rendimiento en el uso de referencias universales, […]

C ++ lambda con capturas como puntero de función

Estaba jugando con C ++ lambdas y su conversión implícita a indicadores de función. Mi ejemplo inicial fue usarlos como callback para la función ftw. Esto funciona como se esperaba #include #include using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int typeflag) -> int { cout << […]

¿Cómo puedo seleccionar eficientemente un contenedor de Biblioteca Estándar en C ++ 11?

Hay una imagen bien conocida (hoja de trucos) llamada “elección del contenedor C ++”. Es un diagtwig de flujo para elegir el mejor contenedor para el uso deseado. ¿Alguien sabe si ya hay una versión de C ++ 11? Esta es la anterior:

¿Por qué las funciones eliminadas de C ++ 11 participan en la resolución de sobrecarga?

¿Por qué C ++ 11 hace que las funciones ” delete d” participen en la resolución de sobrecarga ? ¿Por qué es esto útil? O en otras palabras, ¿por qué están ocultos en lugar de eliminarse por completo?

Will std :: string siempre terminará nulo en C ++ 11?

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 la terminación nula y posiblemente prohibir las implementaciones de copia sobre escritura, por razones relacionadas con la concurrencia. Aquí está el documento: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html . Creo que una […]

¿Cómo verifico si tengo compatibilidad con C ++ 11?

¿Hay alguna forma de detectar en tiempo de comstackción si el comstackdor admite ciertas características de C ++ 11? Por ejemplo, algo como esto: #ifndef VARIADIC_TEMPLATES_SUPPORTED #error “Your compiler doesn’t support variadic templates. :(” #else template class Tuple { // … } #endif