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

9 la respuesta

¿Incrementar un puntero nulo está bien definido?

Hay muchos ejemplos de comportamiento indefinido / no especificado al hacer aritmética de punteros: los punteros deben apuntar dentro de la misma matriz (o uno más allá del final), o dentro del mismo objeto, restricciones sobre cuándo puede hacer ...

1 la respuesta

Puede un comportamiento indefinido que seguiría a un getc () alterar el comportamiento del programa si getc () sale a través de SIGINT

Bajo las interpretaciones modernas de "Comportamiento indefinido", un compilador tiene derecho a suponer que no ocurrirá una cadena de eventos que causaría que el comportamiento indefinido sea "inevitable", y puede eliminar el código que solo ...

1 la respuesta

No puedo entender la declaración n. ° 3 en el Ejemplo de [basic.link] / 6 C ++ 14

[enlace.básico] / 6 El nombre de una función declarada en el alcance del bloque y el nombre de una variable declarada por un alcance del bloqueextern declaración tiene vinculación. Si hay unvisibledeclaración de una entidad con vinculación ...

1 la respuesta

Búsqueda de nombres ambiguos con la directiva using

No está permitido poner un espacio de nombres y una clase con el mismo nombre en una región declarativa, es decir namespace A {} class A{};está mal formado [http://coliru.stacked-crooked.com/a/5b837907b4d0609c](Ver §3.3.1 / 4). Sin embargo, uno ...

6 la respuesta

¿Puede argc ser cero en un sistema POSIX?

Dada la definición estándar para el programa principal: int main(int argc, char *argv[]) { ... }¿Bajo qué circunstancias puedenargc ser cero en un sistema POSIX?

1 la respuesta

Advertencia de C ++ 14: demasiados encabezados de plantilla para la variable (debe ser 0)

Mientras experimentaba con el reciente compilador g ++ - 5, escribí la siguiente declaración en un archivo: template<T> T a; template<> int a = 1;Lo que resulta en: advertencia: demasiados encabezados de plantilla paraa (debe ser 0) También ...

2 la respuesta

static_assert depende del parámetro de plantilla sin tipo (comportamiento diferente en gcc y clang)

template <int answer> struct Hitchhiker { static_assert(sizeof(answer) != sizeof(answer), "Invalid answer"); }; template <> struct Hitchhiker<42> {};Al intentar deshabilitar la creación de instancias de plantilla general constatic_assert Descubrí ...

3 la respuesta

"Construir" un objeto trivialmente copiable con memcpy

En C ++, ¿es correcto este código? #include <cstdlib> #include <cstring> struct T // trivially copyable type { int x, y; }; int main() { void *buf = std::malloc( sizeof(T) ); if ( !buf ) return 0; T a{}; std::memcpy(buf, &a, sizeof a); T *b = ...

5 la respuesta

¿Qué comprueba un compilador para el código de plantilla desinstalado?

Por ejemplo, el siguiente código compila con gcc-4.9 y clang-602 class Base { public: static void foo() {} void badfoo(int i) {} }; template <typename T> class Derived : public Base { public: void bar() { Base::foo(); } void badbar() { ...

2 la respuesta

Problema con std :: reference_wrapper

El problema está claro con el siguiente código: #include <functional> #include <iostream> #include <vector> int main() { //std::vector<int> a, b; int a = 0, b = 0; auto refa = std::ref(a); auto refb = std::ref(b); std::cout << (refa < refb) << ...