¿Cómo habilitar el soporte C ++ 11 / C ++ 0x en Eclipse CDT?


210

Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2

Este es un ejemplo de una pieza de código C ++ 11:

auto text = std::unique_ptr<char[]>(new char[len]);

El editor de Eclipse se queja de:

Function 'unique_ptr' could not be resolved

La compilación de Makefile funciona bien. ¿Cómo hacer que Eclipse deje de quejarse de este tipo de errores?


12
Por lo menos, debería serstd::unique_ptr<char[]>
Cubbi

No estoy seguro de que sea correcto: char [] es convertible en char * y unique_ptr <char> es un puntero a char, como char *
Nick

1
No unique_ptr<char>llamaría delete, lo que está mal desde que se creó con new[]?
Dietrich Epp

66
@ Nick: No, tiene razón. La forma en que lo escribiste hará que te deletellamen, cuando necesites delete[] llamar. El unique_ptr<char>asume que se está haciendo un puntero, que se elimina con delete. unique_ptr<char[]>espera una matriz, que se elimina delete[]correctamente.
Nicol Bolas

Respuestas:


224

Encontré este artículo en el foro de Eclipse, solo seguí esos pasos y funciona para mí. Estoy usando Eclipse Indigo 20110615-0604 en Windows con una configuración Cygwin.

  • Hacer un nuevo proyecto C ++
  • Opciones predeterminadas para todo
  • Una vez creado, haga clic derecho en el proyecto y vaya a "Propiedades"
  • C / C ++ Build -> Configuración -> Configuración de herramienta -> Compilador GCC C ++ -> Varios -> Otras banderas. Put -std=c++0x(o para la versión más nueva del compilador -std=c++11al final ... en lugar del compilador GCC C ++ también tengo el compilador Cygwin
  • C / C ++ General -> Trayectorias y símbolos -> Símbolos -> GNU C ++. Haga clic en "Agregar ..." y pegue __GXX_EXPERIMENTAL_CXX0X__(asegúrese de agregar y anteponer dos guiones bajos) en "Nombre" y deje en blanco "Valor".
  • Presione Aplicar, haga lo que le pida que haga, luego presione Aceptar.

Ahora también hay una descripción de esto en las Preguntas frecuentes de Eclipse : Características de Eclipse Preguntas frecuentes / C ++ 11 .

Configuración de imagen de eclipse


2
¡Sí, funcionó! Pero asegúrese de anteponer y agregar dos guiones bajos a GXX_EXPERIMENTAL_CXX0X - Mientras tanto, aceptaré esto
Nick

55
¿Esto eliminó los errores espurios del editor? No tengo ningún problema con la compilación, y se reconocen los nuevos tipos estándar, pero no puedo deshacerme de los errores de sintaxis del editor para el rango basado en bucles y referencias de valor &&.
juanchopanza

77
La pregunta de seguimiento natural ahora es: ¿podemos optimizar nuestro flujo de trabajo guardando estas configuraciones específicas del proyecto C ++ en una nueva plantilla del proyecto Eclipse que dice "Proyecto C ++ 11"?
Nordlöw

38
Nota: para cualquiera que busque la respuesta para Juno, esto no funciona .
Christopher

44
Para kepler / juno, la solución se encuentra en esta respuesta . Está publicado en la edición de la respuesta de Johan Lundberg a continuación, pero también lo anoto aquí, para que la respuesta aceptada sea más completa.
Inusable Lumière

150

Instrucciones para Eclipse CDT 4.4 Luna y 4.5 Mars

Primero, antes de crear el proyecto, configure el analizador sintáctico Eclipse:

Window-> Preferences-> C/C++-> Build-> Settings-> Discovery->CDT GCC Build-in Compiler Settings

en el cuadro de texto titulado Command to get compiler specsagregar-std=c++11

Ahora puede crear un proyecto, la configuración depende del tipo de proyecto que haya creado:

Para proyectos creados como: Archivo -> Nuevo -> Proyecto -> C / C ++ -> Proyecto C ++

Haga clic derecho en el proyecto creado y abra

Properties-> C/C++ Build-> Settings-> Tool Settings-> GCC C++ Compiler->Dialect

Poner -std=c++11en el cuadro de texto titulado other dialect flagso seleccionar ISO C++11del Language standardmenú desplegable.

Para proyecto CMake

Generar archivos de proyecto eclipse (dentro de su proyecto)

mkdir build
cd build
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ..

Luego importe el directorio generado a eclipse como proyecto de eclipse estándar. Haga clic derecho en proyecto y abra

Properties-> C/C++ General-> Preprocessor Include Paths, Marcos etc.->Providers

habilítelo CDT GCC Build-in Compiler Settingsy muévalo más alto que Contributed PathEntry Containers(Esto es importante)

Último paso común

recompilar, regenerar Project-> C/C++ Indexy reiniciar Eclipse.


1
Funcionó perfectamente incluso sin necesidad de reiniciar el eclipse. Gracias.
prasannak 01 de

Gracias. Ninguna otra respuesta funcionó para mí en Luna también.
Mohamed El-Nakib

Todavía funciona en Marte. Más que una gran respuesta! ¡Si tan solo pudiera votar esta respuesta dos veces!
Mohamed El-Nakib

¡Gracias! Esta es la respuesta más útil para el problema que he encontrado (4.5)
AturSams

2
Para Eclipse Neon.3, con un proyecto Makefile de C ++, la configuración del proyecto para agregar -std=c++11era Project Properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. -> Providers [tab] -> CDT GCC Built-in Compiler Settings -> Command used to get compiler specs:. Añade tu -std=c++11a eso. Lo configuré en la configuración global del espacio de trabajo como sugerente, pero no se copió en la ubicación que describí anteriormente cuando creé un nuevo Makefileproyecto.
BeeOnRope

112

Actualización 2016:

A partir de gcc 6 ( cambios ), el dialecto predeterminado de C ++ es C ++ 14. Eso significa que a menos que explícitamente necesite un dialecto más nuevo o más antiguo que el anterior, ya no necesita hacer nada con eclipse.

Para luna y marte

Esta sección wiki de la comunidad incorpora la respuesta de Trismegistos;

1. Antes de crear el proyecto, configure el analizador sintáctico Eclipse:

Ventana -> Preferencias -> C / C ++ -> Compilación -> Configuración -> Descubrimiento -> Configuración del compilador de CDT GCC Build-in

en el cuadro de texto titulado Comando para obtener las especificaciones del compilador anexar -std=c++14 2. Crear proyecto, la configuración depende del tipo de proyecto que haya creado:

Para proyectos creados como: Archivo -> Nuevo -> Proyecto -> C / C ++ -> Proyecto C ++

Haga clic derecho en el proyecto creado y abra

Propiedades -> C / C ++ Build -> Configuración -> Configuración de herramienta -> Compilador GCC C ++ -> Dialecto

Ponga -std=c++14en el cuadro de texto titulado otras banderas de dialecto o seleccione ISO C ++ 11 en el menú desplegable Estándar de idioma.

Ahora hay una nueva forma de resolver esto sin el truco GXX_EXPERIMENTAL.

Para las versiones más recientes : (Actualmente Juno y Kepler Luna ):

En las versiones más recientes de Juno, la configuración se encuentra en Project properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. -> tab Providers -> CDT GCC Builtin Compiler Settings ().

Versiones anteriores 2012/2013:

  1. En C / C ++ Build (en la configuración del proyecto), busque la ruta de inclusión del preprocesador y vaya a la pestaña Proveedores . Anule la selección de todos excepto la configuración del compilador incorporado CDT GCC. A continuación, desmarque las entradas de configuración Compartir ... Agregue la opción -std = c ++ 11 al cuadro de texto llamado Comando para obtener las especificaciones del compilador.

  2. Ir a caminos y símbolos. En Símbolos, haga clic en restaurar valores predeterminados y luego aplique.


Notas:

Eclipse es exigente con respecto a presionar aplicar, debe hacerlo cada vez que salga de una pestaña de configuración.

[Auto-promoción]: escribí mis propias instrucciones más detalladas basadas en lo anterior. http://scrupulousabstraction.tumblr.com/post/36441490955/eclipse-mingw-builds

Gracias al usuario Nobodyen https://stackoverflow.com/a/13635080/1149664


3
Gracias pero no me ayudó a resolver las referencias de c ++ 11. El programa se compila correctamente, pero eclipse no puede resolverlos. Cuando verifico "array", #ifndef __GXX_EXPERIMENTAL_CXX0X__devuelve true y el código a continuación no se analiza. Cuando agrego __GXX_EXPERIMENTAL_CXX0X__símbolos al proyecto, la matriz se resuelve pero las referencias de mi proyecto se confunden. ¿Cuál podría ser el problema aquí?
Halil Kaskavalci

1
Creo que es un error. Lo volví a producir así: Abrir nuevo proyecto. Habilite las funciones de c ++ 11. Agregue una clase aleatoria con una variable pública. Crea un vector de esta clase aleatoria. Consigue el iterador. Intenta acceder a la variable pública. O mi espacio de trabajo está dañado o hay un error en Eclipse que no puede analizar esto.
Halil Kaskavalci

1
@HalilKaskavalci Encontré este mismo error. Si configuro el editor para c ++ 11, los iteradores no se pueden resolver. Si no lo hago, std :: unique_ptr no se puede resolver. Realmente molesto, ya que uso ambos.
Kian

1
@Kian informé el error. bugs.eclipse.org/bugs/show_bug.cgi?id=397027 . Es bastante molesto y comencé a usar bibliotecas de impulso, no producen el error :)
Halil Kaskavalci

1
¡funciona para mi! ¡Gracias! (lo hice por su referencia) Agregué -std = c ++ 11 a los proveedores y restauré los valores predeterminados en los símbolos. Creo que restaurar el valor predeterminado en los símbolos me salva. Ahora unique_ptr se está resolviendo.
Denis Zaikin

20

Para el último (Juno) eclipse cdt lo siguiente funcionó para mí, no es necesario declararme __GXX_EXPERIMENTAL_CXX0X__. Esto funciona para el indexador CDT y como parámetro para el compilador:

"nombre del proyecto" -> clic derecho -> propiedades:

C / C ++ General -> Preprocesador Incluir rutas, macros, etc. -> cambie a la pestaña denominada "Proveedores":

  • para "Configuración", seleccione "Liberar" (y luego "depurar")

  • apague todos los proveedores y simplemente seleccione "Configuración del compilador incorporado CDT GCC"

  • desmarque "Compartir entradas de configuración entre proyectos (proveedor global)"

  • en el "Comando para obtener las especificaciones del compilador:" agregar "-std = c ++ 11" sin las comillas (también puede funcionar con comillas)

  • presione aplicar y cierre las opciones

  • reconstruir el índice

Ahora todas las cosas relacionadas con c ++ 11 deben ser resueltas correctamente por el indexador.

win7 x64, último eclipse oficial con cdt mingw-w64 gcc 4.7.2 del proyecto mingwbuilds en sourceforge


sigue recibiendo las mismas advertencias erróneas del editor, ya que en Tipo 'std :: thread' no se pudo resolver a pesar de que se compila y ejecuta OK
Scott Stensland

2
necesita compilar una vez con la nueva configuración, por lo que el analizador "aprenderá" que el indicador std = c ++ 11 está configurado
Andreas

dependiendo de la versión del compilador, podría ser necesario agregar -std = c ++ 0x en lugar de -std = c ++ 11 (por ejemplo, debian wheezy)
xmoex

15

Tuve el mismo problema en mi Eclipse Juno. Estos pasos resolvieron el problema:

  • Ir a Project -> Properties -> C/C++ General -> Path and Symbols -> Tab [Symbols].
  • Agregue el símbolo: __cplusplus con el valor 201103L

2
¡Esto debería aceptarse como respuesta ya que funciona también para proyectos Makefile!
omikron

@ Jerk31 esto no funciona para Eclipse Juno que se ejecuta en Windows (para mí), todavía veo esos errores innecesarios quejándose, a pesar de que el binario funciona bien. ¡¡¡Por favor, ayúdame!!!
intercambio excesivo el

Realmente lo siento, no puedo ayudarte en Windows. No tengo la oportunidad de intentar ejecutar ningún proyecto C ++ en este sistema operativo. ¡Te deseo la mejor y buena suerte!
Jerome

13

Para Eclipse CDT Kepler, ¿qué funcionó para mí? std::thread símbolo no resuelto es:

  1. Vaya a Preferencias-> C / C ++ -> Build-> Settings

  2. Seleccione la pestaña Descubrimiento

  3. Seleccione la configuración del compilador incorporado CDT GCC [Shared]

  4. Agregue -std = c ++ 11 al campo "Comando para obtener las especificaciones del compilador:" como:

$ {COMANDO} -E -P -v -dD -std = c ++ 11 $ {ENTRADAS}

  1. Ok y Reconstruir índice para el proyecto.

Agregando -std=c++11 al proyecto Properties/C/C++ Build->Settings->Tool Settings->GCC C++ Compiler->Miscellaneous->Other Flags no fue suficiente para Kepler, sin embargo, fue suficiente para versiones anteriores como Helios.


Para la versión de Eclipse: 2019-09 R. Esta solución funcionó para mí, sin embargo, he pasado mucho tiempo antes de eso. El problema estaba en la Configuración del generador: Proyecto -> Propiedades -> Compilación C / C ++: en la pestaña 'Configuración del generador' elija 'Constructor interno' para 'Tipo de generador'.
grekhss

5

Todavía no puedo comentar, así que estoy escribiendo mi propia respuesta:

Está relacionado con __GXX_EXPERIMENTAL_CXX0X__ y es válido para Eclipse Juno y CDT 8.x.

Algunas partes de esta respuesta ya están cubiertas en otras respuestas, pero quiero que sea coherente.

Para que sea posible construir usando stdc ++ 11, uno tiene que agregar un indicador específico para el compilador. Puede hacerlo a través de las propiedades del proyecto. Para modificar las propiedades del proyecto RMBy Project propertieso ALT + ENTER. Luego, C / C ++ Build -> Configuración -> Configuración de herramienta -> Compilador GCC C ++ -> Varios -> Otras banderas. Ponga -std = c ++ 11 al final de la línea, para GCC se verá algo como: -c -fmessage-length=0 -std=c++11. Al agregar -stdc ++ 11, el compilador de banderas (GCC) declarará __GXX_EXPERIMENTAL_CXX0X__por sí mismo.

En este punto, puede construir un proyecto utilizando toda la bondad de C ++ 11.

El problema es que Eclipse tiene su propio analizador para verificar si hay errores, es por eso que todavía obtienes todos los errores desagradables en el editor de Eclipse, mientras que al mismo tiempo puedes construir y ejecutar proyectos sin ninguno. Hay una manera de resolver este problema declarando explícitamente el __GXX_EXPERIMENTAL_CXX0X__indicador para el proyecto, uno puede hacer eso (tal como dijo Carsten Greiner): C / C ++ General -> Trayectorias y símbolos -> Símbolos -> GNU C ++. Haga clic en "Agregar ..." y pasado __GXX_EXPERIMENTAL_CXX0X__(asegúrese de agregar y anteponer dos guiones bajos) en "Nombre" y deje en blanco "Valor". Y ahora es la parte adicional que quería cubrir en el comentario a la primera respuesta, vaya a: C / C ++ General -> Preprocesador Incluir macros de ruta, etc. -> Proveedores, y seleccioneCDT Managed Build Setting Entriesluego haga clic en APLICAR y regrese a la pestaña Entradas, en GNU C ++ debería haber ahora Entradas de configuración de compilación administrada de CDT __GXX_EXPERIMENTAL_CXX0X__.


3

También tuve varios problemas (Ubuntu 13.04 de 64 bits, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0). Muchas cosas se mencionan anteriormente, lamento repetirlas, pero además tuve problemas para utilizar

std::thread

como parte de c ++ 11 (agregar -pthread para el enlazador resuelve ese problema). De todos modos, finalmente estas configuraciones funcionaron bien:

Proyecto -> Propiedades -> C / C ++ Build -> Configuración -> Varios. Añade el

-std=c++11

bandera para los compiladores GCC y G ++. Haz clic en Aplicar.

Para el enlazador, la misma ventana, Varios, banderas de enlazador, agregaron

-pthread

bandera. Configuración de biblioteca compartida, nombre de objeto compartido, agregue el

-Wl,--no-as-needed

bandera también Haz clic en Aplicar.

C / C ++ General -> Rutas y símbolos -> Símbolos TAB, GNU C ++ seleccionado, Agregue el

__GXX_EXPERIMENTAL_CXX0X__

(sin valor)

bandera. Haz clic en Aplicar.

C / C ++ General -> Preprocesador Incluir rutas .. -> pestaña Proveedores: verificar

Configuración del compilador incorporado CDT GCC

y para "Comando para obtener especificaciones del compilador", agregue el

-std=c++11

bandera. Desmarca Compartir. Haz clic en Aplicar.

Entradas de configuración de compilación de CDT Managages, verifique esto también. Desmarca los otros dos. Haz clic en Aplicar.

Volviendo a la pestaña Entradas, GNU C ++ CDT Managages Build Setting Entradas, ahora debería ver su agregado

__GXX_EXPERIMENTAL_CXX0X__

entrada.

Eso es. Al codificar, escribir

std::

ahora puede completar automáticamente la clase de subproceso, por ejemplo, las compilaciones deberían funcionar bien y no debería haber

std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted

en tiempo de ejecución.


Fue el Project -> Properties -> C/C++ Build -> Settings -> Miscellaneouspaso que funcionó para mí. Muchas gracias: D
Jake88

2

No sé si soy solo yo, la solución mejor clasificada no funciona para mí, mi versión de eclipse es simplemente la plataforma de eclipse normal instalada usando sudo apt-get install eclipse en Ubuntu Pero encontré una solución que adopta el método juntos tanto de la solución mejor clasificada como de la segunda, lo que hice para que funcione se describe a continuación (tenga en cuenta que los otros pasos, como crear un proyecto C ++, etc., se ignoran por simplicidad)

Una vez que haya creado el proyecto C ++

(1) C / C ++ General -> Trayectorias y símbolos -> Símbolos -> GNU C ++. Haga clic en "Agregar ..." y pegue GXX_EXPERIMENTAL_CXX0X (asegúrese de agregar y anteponer dos guiones bajos) en "Nombre" y deje en blanco "Valor".

(2) En C / C ++ Build (en la configuración del proyecto), busque la ruta de inclusión del preprocesador y vaya a la pestaña Proveedores. Anule la selección de todos excepto la configuración del compilador incorporado CDT GCC. A continuación, desmarque las entradas de configuración Compartir ... Agregue la opción -std = c ++ 11 al cuadro de texto llamado Comando para obtener las especificaciones del compilador

Después de realizar solo los pasos 2 y 2 anteriores, funciona, el eclipse puede resolver el unique_ptr, no sé por qué funciona esta solución, espero que pueda ayudar a las personas.


Esto también funcionó para mí (eclipse neon). Al principio no anulé la selección de los otros proveedores, lo que todavía causó problemas, pero anulé la selección de todos los demás proveedores que no funcionaban "Configuración del compilador incorporado CDT GCC" y "Configuración del usuario CDT". ¡Gracias!
zpon

2

Eclipse C / C ++ no reconoce el símbolo std::unique_ptraunque haya incluido el encabezado de memoria C ++ 11 en su archivo.

Suponiendo que está utilizando el compilador GNU C ++, esto es lo que hice para solucionarlo:

Proyecto -> Propiedades -> C / C ++ General -> Rutas de inclusión del preprocesador -> GNU C ++ -> Entradas de configuración de usuario CDT

  1. Haga clic en el botón "Agregar ..."

  2. Seleccione "Macro de preprocesador" en el menú desplegable

    Name: __cplusplus     Value:  201103L
  3. Presione Aplicar, y luego OK para volver a su proyecto

  4. Luego reconstruya su índice C ++: Proyectos -> Índice C / C ++ -> Reconstruir


Este es el único método que funcionó para mí en Eclipse 2018-12. La respuesta "aceptada", etc., ya no funciona en 2018-12.
David Steinhauer el

1

Para mí en Eclipse Neon , seguí la respuesta de Trismegistos aquí arriba , PERO también agregué un paso adicional:

  • Vaya a proyecto -> Propiedades -> C ++ General -> Preprocesador Incluir rutas, macros, etc. -> Proveedores -> Configuración del compilador incorporado CDT Cross GCC, agregue la bandera "-std = c ++ 11"

Presiona aplicar y OK.

Salud,

Chico.


0
  • haga clic derecho en el proyecto y vaya a "Propiedades"
  • C / C ++ Build -> Configuración -> Configuración de herramienta -> Compilador GCC C ++ -> Varios -> Otras banderas. Ponga -lm al final del cuadro de texto de otras banderas y OK.

¿Qué versión de Eclipse es esta?
Braiam

0

Ni el hack ni la versión más limpia funcionan para Indigo. Se ignora el truco y faltan las opciones de configuración requeridas. Sin razón aparente, la compilación comenzó a funcionar después de no funcionar y no proporcionar ninguna razón útil. Al menos desde la línea de comando, obtengo resultados reproducibles.


0

Para obtener soporte para C ++ 14 en Eclipse Luna, puede seguir estos pasos:

  • En C++ General -> Preprocessor Include -> Providers -> CDT Cross GCC Built-in Compiler Settings, agregue "-std = c ++ 14"
  • En C++ Build -> Settings -> Cross G++ Compiler -> Miscellaneous, agregue "-std = c ++ 14"

Reindexe su proyecto y finalmente reinicie Eclipse. Debería funcionar como se esperaba.


0

Lo resolví de esta manera en una Mac. Usé Homebrew para instalar la última versión de gcc / g ++. Aterrizan en / usr / local / bin con incluye en / usr / local / include.

CD en / usr / local / bin e hice un enlace simbólico de g ++ @ 7 lo que sea solo a g ++ porque ese bit es molesto.

Luego fui a MyProject -> Properties -> C / C ++ Build -> Settings -> GCC C ++ Compiler y cambié el comando de "g ++" a "/ usr / local / bin / g ++". Si decide no hacer el enlace simbólico, puede ser más específico.

Haz lo mismo para el enlazador.

Aplicar y Aplicar y cerrar. Deja que reconstruya el índice. Durante un tiempo, mostró una cantidad desalentadora de errores, pero creo que fue al construir índices. Mientras descubría los errores, todos desaparecieron sin más acción.


Creo que sin verificar que también podría entrar en Eclipse -> Propiedades -> C / C ++ -> Core Build Toolchains y editar aquellos con diferentes rutas, pero no estoy seguro de qué hará eso.


0

Tuve un problema similar al usar Eclipse C ++ 2019-03 para un proyecto mixto de C y C ++ que usaba std :: opcional y std :: swap. Lo que funcionó para mí fue esto. En el proyecto Propiedades-> C / C ++ Build-> Configuración-> Configuración de herramienta-> Compilador Cross G ++, elimine -std = gnu ++ 17 de Varios y póngalo en Dialecto-> Otros indicadores de dialecto.


0

Cuando uso un compilador cruzado, a menudo obtengo sistemas de compilación personalizados avanzados meticulosamente diseñados por colegas. Uso "Proyecto Makefile con código existente", por lo que la mayoría de las otras respuestas no son aplicables.

Al comienzo del proyecto, tengo que especificar que estoy usando un compilador cruzado en el asistente para "Proyecto Makefile con código existente". Lo molesto es que en los últimos 10 años más o menos, el botón del compilador cruzado en ese asistente no solicita dónde está el compilador cruzado. Entonces, en un paso que soluciona el problema de C ++ y el problema del compilador cruzado, tengo que ir a la pestaña de proveedores como se menciona en respuestas como @ravwojdyla arriba, pero el proveedor que tengo que seleccionar es el proveedor del compilador cruzado. Luego, en el cuadro de comando, pongo la ruta completa al compilador y agrego -std = gnu ++ 11 para el estándar C ++ para el que quiero tener soporte. Esto funciona tan bien como se puede esperar.

Puede hacer esto a un proyecto existente. Lo único que debe hacer es volver a ejecutar el indexador.

Nunca he tenido que agregar la bandera experimental o anular la definición de __cplusplus. Lo único es que, si tengo una cantidad sustancial de código C moderno, no tengo dónde colocar la opción estándar específica de C.

Y para cuando las cosas van realmente mal, obtener un registro del analizador, usando ese comando en el submenú Indexador, puede ser muy informativo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.