Wieder mal ist ein Semester zu Ende, und ich habe auch wieder ein Seminar belegt und ein zugehöriges Paper geschrieben. Hier das Abstract:

C++ templates are a powerful language construct that enable generic programming techniques without impacting runtime performance. A problem when using templates is the lack of an explicit contract between the user and the definition of a template. This leads to difficult to understand error messages and inhibits separate checking of template code.

Concepts are part of the next C++ standard and mitigate these problems. Concepts express explicit requirements to template argument types, thus allowing separate checking. Other benefits include syntactical adaption of existing types, making code more reusable.

This paper introduces concepts and shows how existing code can be refactored to use concepts, making the code easier to understand.

Das ganze Paper.