workaround work terminologia significado rugby itil informatica around c++ c++11 generic-programming c++-concepts

c++ - work - ¿Qué son los conceptos?



workaround informatica (2)

Aquí hay un artículo que creo que ayudaría:

http://www.devx.com/SpecialReports/Article/38864

La decisión de eliminarlos también se ha discutido varias veces aquí en SO. Estos pueden resultar interesantes:

c0x ya no tiene conceptos

Conceptos comparados con las interfaces

Discusión hipotética de los conceptos.

He escuchado todo esto nuevo (en /.) Sobre que C ++ 0x ya no tiene conceptos, pero no tengo idea de lo que son ¿Alguien me puede explicar?


Los conceptos son una función de programación genérica que permite que alguien que escribe código de plantilla especifique los requisitos que deben cumplir los parámetros de tipo.

Por ejemplo, algunos tipos de colección necesitan el parámetro de tipo para que la colección defina el operador <. Por lo tanto, el programador podría definir un concepto llamado LessThanComparable que le dice al compilador que el parámetro de tipo para la clase de plantilla debe tener el operador <definido. Si el usuario de la plantilla intenta crear una instancia de la plantilla utilizando un tipo que no tiene el concepto LessThanComparable (es decir, no tiene un operador <función), el compilador puede emitir un mensaje de error simple en lugar del torrente de mensajes de error asociados con el código de plantilla. El compilador también puede aprovechar la información adicional proporcionada por los conceptos para generar un código más eficiente.

Esto es algo de una simplificación excesiva, pero creo que le da la idea general de los conceptos.

Si desea probar algunas de las capacidades de los conceptos, eche un vistazo a la biblioteca Boost.Concept Check. No creo que proporcione la gama completa de capacidades que estarían en el estándar, pero es un buen lugar para comenzar.

También puede querer ver ConceptC++ , hay una buena definición de conceptos allí.