دورية أكاديمية

Template Metaprogramming Techniques for Concept-Based Specialization

التفاصيل البيبلوغرافية
العنوان: Template Metaprogramming Techniques for Concept-Based Specialization
المؤلفون: Bachelet, Bruno, Mahul, Antoine, Yon, Loïc
المساهمون: Laboratoire d'Informatique, de Modélisation et d'Optimisation des Systèmes (LIMOS), Ecole Nationale Supérieure des Mines de St Etienne (ENSM ST-ETIENNE)-Université Clermont Auvergne 2017-2020 (UCA 2017-2020 )-Centre National de la Recherche Scientifique (CNRS), Université Clermont Auvergne 2017-2020 (UCA 2017-2020 )
المصدر: ISSN: 1058-9244 ; Scientific Programming ; https://hal.science/hal-00641006Test ; Scientific Programming, 2013, 21, pp.43-61. ⟨10.3233/SPR-130362⟩.
بيانات النشر: HAL CCSD
IOS Press
سنة النشر: 2013
المجموعة: HAL Clermont Auvergne (Université Blaise Pascal Clermont-Ferrand / Université d'Auvergne)
مصطلحات موضوعية: generic programming, template specialization, template metaprogramming, concept-based overloading/specialization, métaprogrammation par patrons, surcharge/spécialisation par concepts, programmation générique, spécialisation de patron, [INFO.INFO-SE]Computer Science [cs]/Software Engineering [cs.SE], [INFO.INFO-PL]Computer Science [cs]/Programming Languages [cs.PL]
الوصف: International audience ; In generic programming, software components are parameterized on types. When available, a static specialization mechanism allows selecting, for a given set of parameters, a more suitable version of a generic component than its primary version. The normal C++ template specialization mechanism is based on the type pattern of the parameters, which is not always the best way to guide the specialization process: type patterns are missing some information on types that could be relevant to define specializations. The notion of a "concept", which represents a set of requirements (including syntactic and semantic aspects) for a type, is known to be an interesting approach to control template specialization. For many reasons, concepts were dropped from C++11 standard, this article therefore describes template metaprogramming techniques for declaring concepts, "modeling" relationships (meaning that a type fulfills the requirements of a concept), and "refinement" relationships (meaning that a concept refines the requirements of another concept). From a taxonomy of concepts and template specializations based on concepts, an automatic mechanism selects the most appropriate version of a generic component for a given instantiation. Our purely library-based solution is also open for retroactive extension: new concepts, relationships, and template specializations can be defined at any time; such additions will then be picked up by the specialization mechanism.
نوع الوثيقة: article in journal/newspaper
اللغة: English
العلاقة: hal-00641006; https://hal.science/hal-00641006Test; https://hal.science/hal-00641006v5/documentTest; https://hal.science/hal-00641006v5/file/RR-10-18.pdfTest
DOI: 10.3233/SPR-130362
الإتاحة: https://doi.org/10.3233/SPR-130362Test
https://hal.science/hal-00641006Test
https://hal.science/hal-00641006v5/documentTest
https://hal.science/hal-00641006v5/file/RR-10-18.pdfTest
حقوق: info:eu-repo/semantics/OpenAccess
رقم الانضمام: edsbas.147926C1
قاعدة البيانات: BASE