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

3 la respuesta

Alias de matrices a través de estructuras

Estoy leyendo el párrafo 7 de 6.5 en ISO / IEC 9899: TC2. Condonar el acceso de valor a un objeto a través de: un tipo agregado o de unión que incluye uno de los tipos antes mencionados entre sus miembros (incluido, recursivamente, un miembro ...

4 la respuesta

Argumento predeterminado frente a sobrecargas en C ++

Por ejemplo, en lugar de void shared_ptr::reset() noexcept; template <typename Y> void shared_ptr::reset(Y* ptr);uno puede pensar en template <typename Y = T> void shared_ptr::reset(Y* ptr = nullptr);Creo que la diferencia de rendimiento es ...

3 la respuesta

¿Cuál es el significado de esta parte de Standardese sobre use_count () de shared_ptr?

Al tratar de entender el problema que se muestra enesta pregunta [https://stackoverflow.com/questions/28111666/why-is-stdweak-ptrexpired-optimized-away?noredirect=1#comment44599229_28111666] Me encontré atrapado en la siguiente oración de ...

3 la respuesta

Operadores bit a bit y tipos firmados

Estoy leyendo C ++ Primer y estoy un poco confundido por algunos comentarios que hablan sobre cómo los operadores de Bitwise manejan los tipos firmados. Citaré: Cita # 1 (Cuando se habla de operadores bit a bit) "Si el operando está firmado y ...

1 la respuesta

¿Por qué la plantilla-id en "A <0> = 0" no se compila sin espacio debido al operador mayor o igual que "> ="?

template <int> using A = int; void f(A<0>=0); // Attempting to declare a function f taking int, // with the default argument 0 // Works as expected: // void f(A<0> = 0);Esto tampoco se compila enGCC 4.9.2 ni Clang ...

2 la respuesta

Estructura de alias y matriz de forma conforme

En los viejos tiempos de pre-ISO C, el siguiente código no habría sorprendido a nadie: struct Point { double x; double y; double z; }; double dist(struct Point *p1, struct Point *p2) { double d2 = 0; double *coord1 = &p1.x; double *coord2 ...

5 la respuesta

¿Es legal alias una estructura y una matriz?

La aritmética de puntero entre miembros consecutivos del mismo tipo en una estructura solía ser una práctica común, mientras que la aritmética de puntero solo es válida dentro de una matriz. En C ++, sería explícitamente Comportamiento indefinido ...

2 la respuesta

¿* & ++ i causa un comportamiento indefinido en C ++ 03?

Enotra respuesta [https://stackoverflow.com/a/17400329/1505939]se dijo que antes de C ++ 11, dondei es unint, luego uso de la expresión: *&++iCausó un comportamiento indefinido. ¿Es esto cierto? En la otra respuesta hubo una pequeña discusión ...

2 la respuesta

¿Es el nombre de plantilla <TT> un contexto deducido?

[temp.deduct.type] párrafo 8 [http://eel.is/c++draft/temp.deduct.type#8]enumera todos los contextos deducidos, pero parece no incluirtemplate-name<TT> dóndetemplate-name se refiere a una plantilla de clase yTT se refiere a un argumento de ...

4 la respuesta

Acceso ++ a miembros estáticos usando puntero nulo

Recientemente probé el siguiente programa y compila, funciona bien y produce la salida esperada en lugar de cualquier error de tiempo de ejecución. #include <iostream> class demo { public: static void fun() { std::cout<<"fun() is called\n"; } ...