Supongamos hace mucho tiempo, que había creado la siguiente enumeración:Cómo declarar un valor de enumeración que está obsoleto en ObjectiveC (2.0)
typedef enum
{
GeometricPoint,
GeometricLine,
GeometricSquare,
GeometricRectangle,
GeometricCircle
}GeometricFigures;
me introdujeron los de hace un tiempo dentro de mi motor impresionante y ahora finalmente he decidido que la gente ya no debería usar GeometricSquare
ya que está cubierto por GeometricRectangle
ya.
Para empezar, que posiblemente iba a cambiar mi enumeración hacia algo como esto:
typedef enum
{
GeometricPoint,
GeometricLine,
GeometricRectangle,
GeometricSquare = GeometricRectangle,
GeometricCircle
}GeometricFigures;
que sin duda mantener mi motor impresionante compatible hacia atrás, pero por otro lado aumentar la basura legado. Por lo tanto, me gustaría eliminar GeometricSquare
por completo en un futuro previsible. Para que esto sea obvio para los usuarios de mi motor, me gustaría marcar GeometricSquare
como obsoleto.
Mi objetivo es que la documentación (doxygen) así como la finalización del código (Xcode) y, por último pero no menos importante, el compilador (GCC) hagan obvio al usuario que GeometricSquare
ya no se debe usar y se ha reemplazado por GeometricRectangle
.
Para la documentación, simplemente usaría la palabra clave @deprecated
;
typedef enum
{
GeometricPoint,
GeometricLine,
GeometricRectangle,
///@deprecated Has been replaced by GeometricRectangle
GeometricSquare = GeometricRectangle,
GeometricCircle
}GeometricFigures;
Pero ¿qué tal Xcode y GCC?
Desafortunadamente, el atributo GCC (método) habitual no parece hacer el trabajo. Agregar __attribute__((deprecated))
como se describe a continuación provoca un error de sintaxis.
typedef enum
{
GeometricPoint,
GeometricLine,
GeometricRectangle,
GeometricSquare = GeometricRectangle __attribute__((deprecated)),
Parse Problema esperada}
GeometricCircle
}GeometricFigures;
Así que, obviamente, que, o bien no funciona por completo o simplemente estoy usando mal.
posible duplicado de [C++ ¿marcar el valor enum como obsoleto?] (http://stackoverflow.com/questions/5488057/c-mark-enum-value-as-deprecated) – lpapp