Tiliae IoC container is a Spring-like IoC container in C++. It tries to mimic Spring’s XML syntax, and has most of its basic features. It includes a simple reflection library with no additional pre-compilation step (implemented as preprocessor macros and called annotations). Annotated classes can be queried and instantiated, and method calls are also possible. The Inversion-of-Control container can instantiate beans (i.e. objects) using one of its constructors (constructor dependency injection), set properties (setter dependency injection), inject one bean into another, and instantiate simple template classes. It can also instantiate std::list, std::vector, set, and map with its custom template arguments. Most simple (scalar) types are supported, such as int, double, std::string, and UTF-8 Core::String. Beans (objects) can be returned as simple pointers or std::shared_ptr pointers. Tiliae features three bean scopes (singleton, prototype, and “bean”), bean definition inheritance, custom factory objects, parent containers, the ability to import XML files, and automatic type conversions.