Resultados de la búsqueda a petición "language-lawyer"

8 la respuesta

Al usar encabezados C en C ++, ¿debemos usar funciones de std :: o el espacio de nombres global?

C es algo, no exactamente, un subconjunto de C ++. Por lo tanto, podemos usar la mayoría de las funciones / encabezados de C en C ++ cambiando un poco el nombre (stdio.h acstdio, stdlib.h acstdlib) Mi pregunta es realmente semántica. En el ...

3 la respuesta

¿Es posible confundir EOF con un valor de byte normal cuando se usa fgetc?

A menudo utilizamosfgetc Me gusta esto: int c; while ((c = fgetc(file)) != EOF) { // do stuff }Teóricamente, si un byte en el archivo tiene el valor deEOF, este código tiene errores: romperá el bucle temprano y no podrá procesar todo el archivo. ...

2 la respuesta

¿Es legal pasar un objeto C ++ a su propio constructor?

Me sorprende descubrir accidentalmente que lo siguiente funciona: #include <iostream> int main(int argc, char** argv) { struct Foo { Foo(Foo& bar) { std::cout << &bar << std::endl; } }; Foo foo(foo); // I can't believe this works... std::cout << ...

1 la respuesta

¿Cuál es la regla que permite a 'this->' acceder a miembros de clases base dependientes?

Como sabemos, el siguiente código está mal formado porque el miembrox está en una clase base dependiente. Sin embargo, cambiandox athis->x en la línea indicada corregiría el error. template <typename T> struct B { int x; }; template <typename T> ...

1 la respuesta

La especialización explícita en el ámbito sin espacio de nombres no se compila en GCC

El siguiente código se compila en Clang pero no en GCC: template<typename T> struct Widget { template<typename U> void foo(U) { } template<> void foo(int*) { } };De acuerdo con el estándar C ++ ([temp.expl.spec], párrafo 2): Se puede declarar ...

1 la respuesta

Forzar que la función se llame solo con tipos específicos

Estaba mirandoHacer cumplir la seguridad de tipo al lanzar char * para bool en C ++ 11 [https://stackoverflow.com/questions/32714895/enforcing-type-safety-when-casting-char-to-bool-in-c11] y se sugirió que si lo haces template<typename T> void ...

3 la respuesta

¿Qué significa para POSIX que un hilo está "suspendido"?

En el curso del comentario sobreuna pregunta reciente [https://stackoverflow.com/questions/32747675/stopping-getline-in-c], surgió una pregunta subsidiaria sobre en qué momento una solicitud de cancelación para un hilo pthreads con ...

4 la respuesta

¿Se define el comportamiento para hacer referencia a un miembro anterior de una expresión de miembro posterior durante la inicialización agregada?

Considera lo siguiente: struct mystruct { int i; int j; }; int main(int argc, char* argv[]) { mystruct foo{45, foo.i}; std::cout << foo.i << ", " << foo.j << std::endl; return 0; } Tenga en cuenta el uso defoo.i en la lista de inicializador ...

2 la respuesta

Valor almacenado cuando falla la lectura istream

Código de muestra: #include <iostream> int main() { int x = 5; std::cin >> x; std::cout << x << '\n'; }Enuna implementación particular [https://stackoverflow.com/questions/32944448/cin-val-sometimes-reads-0-depending-on-ctrl-z] se produce el ...

5 la respuesta

¿Cómo se importa una enumeración en un espacio de nombres diferente en C ++?

Tengo una enumeración en un espacio de nombres y me gustaría usarla como si estuviera en un espacio de nombres diferente. Intuitivamente, pensé que podría usar 'usar' o 'typedef' para lograr esto, pero ninguno de los dos funciona realmente. ...