¿Un alias de espacio de nombres de C++ definido dentro de una definición de función tiene un bloque, función, archivo u otro ámbito (duración de validez)?¿Cuál es el alcance de un alias de espacio de nombres en C++?
Respuesta
Es una duración de bloque de validez. Por ejemplo, si define un alias de espacio de nombre como se muestra a continuación, el alias de espacio de nombres abc no sería válido fuera del bloque {...}.
{
namespace abc = xyz;
abc::test t; //valid
}
abc::test t; //invalid
excepto que no funciona en el alcance de la clase. –
Tendría el alcance del bloque en el que se definió, es probable que sea el mismo que el alcance de la función a menos que declare el alias dentro de un bloque dentro de una función.
Estoy bastante seguro de que un alias de espacio de nombres solo tiene alcance dentro del bloque en el que está creado, como la mayoría de otros tipos de identificadores. No puedo verificar con seguridad en este momento, pero this page no parece ir en contra.
Por lo que yo sé, está en el alcance que ha declarado. Entonces, si alias en un método, entonces es válido en ese método, pero no en otro.
El ámbito es la región declarativa en la que se define el alias.
Tome un vistazo a http://en.wikibooks.org/wiki/C++_Programming/Scope/Namespaces
Es válido para la duración del ámbito en el que se introduce.
Eche un vistazo a http://en.cppreference.com/w/cpp/language/namespace_alias, confío en la explicación de cppreference, es mucho más estándar.
Por favor, no proporcione solo un enlace. También agregue al menos un extracto parcial de la página a la que hace referencia. – Matthias
- 1. En C++, ¿qué es un "alias de espacio de nombres"?
- 2. ¿Es posible revertir alias un espacio de nombres C#?
- 3. ¿Cuál es el beneficio de usar alias de espacio de nombres en C#?
- 4. Alias del espacio de nombres de C#: ¿cuál es el punto?
- 5. Convenciones de alias de tipo/espacio de nombres en C#
- 6. Alias de espacio de nombres C++ y declaración directa
- 7. C# Espacio de nombres Alias calificador (: :) vs Desreferencia Operador (.)
- 8. ¿Está 'usando el espacio de nombres' dentro de otro espacio de nombre equivalente a un alias?
- 9. Crear un alias a otro espacio de nombres Clojure
- 10. ¿Cuál es el propósito de: "usar el espacio de nombres"?
- 11. El operador del Espacio de nombres ... ¿cuál es el problema?
- 12. ¿Cuál es el alcance de un LoaderManager?
- 13. alias de espacio de nombres acortados en aspx
- 14. ¿Cómo se usa el espacio de nombres o el tipo de alias/abreviatura?
- 15. C++ Espacio de nombres pregunta
- 16. ¿Cuál es el alcance de una variable lambda en C#?
- 17. ¿Qué es un espacio de nombres?
- 18. ¿Cuál es el alcance de la declaración de "uso" en C++?
- 19. ¿Cómo hacer que el operador alias del espacio de nombres :: funcione bajo C#?
- 20. En C++, ¿cuál es la resolución del alcance ("orden de precedencia") para nombres de variables sombreados?
- 21. ¿Cuál es el beneficio de la importación en un espacio de nombres en R?
- 22. ¿Cuál es la diferencia entre una clase estática y un espacio de nombres? (en C#)
- 23. Averigüe el URI de espacio de nombres predeterminado de un documento XML en C#
- 24. Problemas del ámbito del alias del espacio de nombres
- 25. incluyen y el uso de espacio de nombres en C++
- 26. ¿Cuál es el alcance predeterminado de un método en Java?
- 27. ¿Por qué el alcance del parámetro C++ afecta la búsqueda de funciones dentro de un espacio de nombres?
- 28. diferencia entre el alcance y espacio de nombres de rubí en los carriles 3 enrutamiento
- 29. Constante de espacio de nombres en C#
- 30. Problema de espacio de nombres en C++
¿Quiere decir "using [namespace];" ? –
Parece que se refiere al alias de un nombre de espacio de nombres más largo al de un identificador de uso más fácil: http://msdn.microsoft.com/en-us/library/chwe1tc8.aspx – Twisol
alias de espacio de nombres (y usar declaraciones) tienen las mismas reglas de alcance que otras declaraciones en C++. –