Abstract. We present a general technique to support reflection in C++, exploiting template metaprogramming techniques. The technique is used for building an object interface to relational database tables. By just annotating a class definition with meta information, such as storage attributes or index properties of fields, a programmer can define objects that can be stored, fetched or searched in a database table. A high-performance, full text search engine has been built with this technique.