Articles of c ++ 11

¿Por qué no se puede comstackr el paso de los argumentos de referencia del objeto a la función de hilo?

He llegado a un problema con la nueva interfaz c ++ 11 std::thread . No puedo entender cómo pasar una referencia a un std::ostream a la función que ejecutará el subproceso. Aquí hay un ejemplo de pasar un número entero (comstackr y trabajar como se espera bajo gcc 4.6): void foo(int &i) { /** do […]

Aplanador iterador

¿Existe alguna implementación de iterador existente (quizás en boost) que implemente algún tipo de iterador de acoplamiento? Por ejemplo: unordered_set<vector > s; s.insert(vector()); s.insert({1,2,3,4,5}); s.insert({6,7,8}); s.insert({9,10,11,12}); flattening_iterator<unordered_set<vector >::iterator> it( … ), end( … ); for(; it != end; ++it) { cout << *it << endl; } //would print the numbers 1 through 12

El análisis más irritante de C ++ otra vez

Tomado directamente de http://herbsutter.com/2013/05/09/gotw-1-solution/ Mientras widget w(); es claro para mí, no tengo idea de cómo puede el código siguiente ser una statement de función? // same problem (gadget and doodad are types) // widget w( gadget(), doodad() ); // pitfall: not a variable declaration ¿Cómo es esto posible?

C ++ 11 make_pair con parámetros de plantilla especificados no comstack

Estaba jugando con g ++ 4.7 (una de las instantáneas posteriores) con -std = c ++ 11 activado. Traté de comstackr parte de mi código base existente y un caso que falló algo me confunde. Agradecería si alguien puede explicar lo que está pasando. Aquí está el código #include #include #include #include int main ( […]

¿Cuándo debería usar realmente noexcept?

La palabra clave no noexcept se puede aplicar de manera apropiada a muchas firmas de funciones, pero no estoy seguro de cuándo debería considerar usarla en la práctica. En base a lo que he leído hasta ahora, la adición de último momento de noexcept parece abordar algunos problemas importantes que surgen cuando se lanzan los […]

¿Cómo pasar los parámetros correctamente?

Soy un principiante de C ++ pero no un principiante de progtwigción. Estoy tratando de aprender C ++ (c ++ 11) y para mí es lo más importante: pasar los parámetros. Consideré estos ejemplos simples: Una clase que tiene todos sus miembros tipos primitivos: CreditCard(std::string number, int expMonth, int expYear,int pin):number(number), expMonth(expMonth), expYear(expYear), pin(pin) Una […]

¿Cuándo debería usar la capacidad constexpr en C ++ 11?

Me parece que tener una “función que siempre devuelve 5” es romper o diluir el significado de “llamar a una función”. Debe haber una razón, o una necesidad para esta capacidad o no estaría en C ++ 11. ¿Por qué está ahí? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife = 42; // […]

¿Cuáles son las opciones de enlace correctas para usar std :: thread en GCC bajo Linux?

Hola, estoy tratando de usar std::thread con G ++. Aquí está mi código de prueba #include #include int main(int, char **){ std::thread tt([](){ std::cout<<"Thread!"<<std::endl; }); tt.join(); } Se comstack, pero cuando bash ejecutarlo el resultado es: terminate called after throwing an instance of ‘std::system_error’ what(): Operation not permitted Aborted Mi versión del comstackdor $ g++ […]

Conversión de std :: __ cxx11 :: string en std :: string

Utilizo c ++ 11, pero también algunas bibliotecas que no están configuradas para él, y necesito algún tipo de conversión. En particular, necesito una forma de convertir std::__cxx11::string a std::string normal, pero Google no puede encontrar una manera de hacerlo y poner (string) en el frente no funciona. Si no me convierto obtengo errores de […]

¿Es el lenguaje seguro-bool obsoleto en C ++ 11?

Esta respuesta de @R. Martinho Fernandes muestra que el lenguaje seguro-bool aparentemente está obsoleto en C ++ 11, ya que puede ser reemplazado por un simple explicit operator bool() const; de acuerdo con la cita estándar en la respuesta §4 [conv] p3 : Una expresión e puede convertirse implícitamente en un tipo T si y […]