Hice algo así por error en C++, y funciona. ¿Por qué puedo hacer esto?¿Por qué puedo definir estructuras y clases dentro de una función en C++?
int main(int argc, char** argv) {
struct MyStruct
{
int somevalue;
};
MyStruct s;
s.somevalue = 5;
}
Ahora después de hacer esto, que tipo de recuerdo haber leído sobre esto en otro truco, hace mucho tiempo, como una especie de herramienta de programación funcional del hombre pobre para C++, pero no puedo recordar por qué esto es válido o donde lo leí
¡Las respuestas a cualquier pregunta son bienvenidas!
Nota: Aunque al escribir la pregunta no obtuve ninguna referencia al this question, la barra lateral actual lo señala así que lo pondré aquí para referencia, de cualquier manera la pregunta es diferente pero podría ser útil.
tipo de una característica interesante que ha sobrevivido, sino como j_random_hacker acaba de señalar que no es tan útil como lo estaba imaginando en C++:/ –
Sí, las reglas de alcance eran raros en C también. Creo que ahora que tengo más de 25 años de experiencia con C++, quizás esforzarme por ser tan parecido a C como ellos lo hicieron, podría haber sido un error. Por otro lado, idiomas más elegantes como Eiffel no fueron adoptados con la misma facilidad. –
Sí, he migrado una base de código C existente a C++ (pero no a Eiffel). – ChrisW