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

1 la respuesta

En un constructor de clase abstracto, ¿por qué necesito llamar a un constructor de una base virtual que nunca llamará?

Me enfrento a la conocida situación del diamante "temido": A / \ B1 B2 \ / C | DLa claseA tiene, dice el constructorA::A(int i). También quiero prohibir una instanciación predeterminada de unA así que declaro el constructor predeterminado deA ...

3 la respuesta

¿Cuál es la definición de "operación aritmética" en C99?

En C99, el términooperación aritmética aparece 16 veces, pero no veo una definición para eso. El terminooperador aritmético solo aparece dos veces en el texto (nuevamente sin definición) pero sí aparece en el Índice: operadores ...

3 la respuesta

¿Dónde está la definición de 'calificadores cv de nivel superior' en el estándar C ++ 11?

EnEl borrador del estándar C ++ 11: N3337 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf]Encontré varias referencias atop-level cv-qualifiers, pero sin definición.

2 la respuesta

¿Cuándo invocar una función miembro en una instancia nula da como resultado un comportamiento indefinido?

Considere el siguiente código: #include <iostream> struct foo { // (a): void bar() { std::cout << "gman was here" << std::endl; } // (b): void baz() { x = 5; } int x; }; int main() { foo* f = 0; f->bar(); // (a) f->baz(); // (b) }Esperamos(b) ...

2 la respuesta

¿Cuál es la razón para "no se requiere diagnóstico"?

La mayoría de las personas están familiarizadas con las notas de comportamiento "indefinidas" y "no especificadas" en C ++, pero ¿qué pasa con "no se requiere diagnóstico"? Observoesta pregunta y respuesta ...

2 la respuesta

¿`Const &&` se une a todos los valores (y valores x)?

El estándar C ++ define las siguientes funciones eliminadas; template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;Esto es para ayudar a garantizar que las funciones no se usen incorrectamente al ...

3 la respuesta

¿Por qué se permite lanzar un tipo de excepción marcada en este caso?

Noté por accidente que estothrow declaración (extraída de un código más complejo) compila: void foo() { try { } catch (Throwable t) { throw t; } }Por un breve pero feliz momento, pensé que las excepciones comprobadas finalmente habían decidido ...

6 la respuesta

Clases con operadores de conversión de plantilla y sin plantilla en la condición de la declaración de cambio

El problema surgió originalmente enesta pregunta [https://stackoverflow.com/questions/25046418/internal-compiler-error-templated-conversion-operator-in-switch-expression] . Considere el siguiente código: class Var { public: operator int () const ...

1 la respuesta

¿Se pueden definir los miembros de la clase fuera del espacio de nombres en el que se declaran?

A veces encuentro código como el siguiente (en realidad, algunos asistentes de clase crean dicho código): // C.h namespace NS { class C { void f(); }; }y en el archivo de implementación: // C.cpp #include "C.h" using namespace NS; void C::f() { ...

1 la respuesta

¿El comportamiento de escritura en & str [0] buffer (de un std: string) está bien definido en C ++ 11?

char hello[] = "hello world"; std::string str; str.resize(sizeof(hello)-1); memcpy(&str[0], hello, sizeof(hello)-1);Este código es un comportamiento indefinido en C ++ 98. ¿Es legal en C ++ 11?