13–17 Feb 2006
Tata Institute of Fundamental Research
Europe/Zurich timezone

Reflex, reflection for C++

14 Feb 2006, 14:00
20m
AG 69 (Tata Institute of Fundamental Research)

AG 69

Tata Institute of Fundamental Research

Homi Bhabha Road Mumbai 400005 India
oral presentation Software Components and Libraries Software Components and Libraries

Speaker

Dr Stefan Roiser (CERN)

Description

Reflection is the ability of a programming language to introspect and interact with it's own data structures at runtime without prior knowledge about them. Many recent languages (e.g. Java, Python) provide this ability inherently but it is lacking for C++. This paper will describe a software package, Reflex, which provides reflection capabilities for C++. Reflex was developed in the context of the LCG Applications Area at CERN. The package tries to comply fully to the ISO/IEC standard for C++ which was taken as the main design guideline. In addition it is light, standalone and non intrusive towards the user code. This paper will focus on the user API of the package and its underlying design issues, the way to generate reflection information from arbitrary C++ definitions and recent additions. Reflex has been adapted by several projects at CERN e.g. POOL, RAL, COOL. Recently Reflex started to be integrated with the ROOT data analysis framework where it will strongly collaborate with the CINT interpreter. An overview of the plans and developments in this area will be discussed. An outlook to possible further modifications e.g. IO/Persistency, Python bindings, plugin management will be given.

Primary author

Dr Stefan Roiser (CERN)

Co-authors

Dr Pere Mato (CERN) Dr Philippe Canal (FNAL)

Presentation materials