[en] FLEXIBLE COMPOSITION FOR C PLUS PLUS 11

[pt] Injeção de dependências, uma forma de inversão de controle, é uma forma de estruturar a configuração e composição de componentes de software que traz vários benefícios como um acoplamento reduzido entre componentes. No entanto, um framework genérico de injeção de dependências requer instrospecç...

Full description

Bibliographic Details
Main Author: MAXIMILIEN PHILIPPE M A DE BAYSER
Other Authors: RENATO FONTOURA DE GUSMAO CERQUEIRA
Language:en
Published: MAXWELL 2017
Subjects:
Online Access:https://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=28950@1
https://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=28950@2
http://doi.org/10.17771/PUCRio.acad.28950
Description
Summary:[pt] Injeção de dependências, uma forma de inversão de controle, é uma forma de estruturar a configuração e composição de componentes de software que traz vários benefícios como um acoplamento reduzido entre componentes. No entanto, um framework genérico de injeção de dependências requer instrospecção em tempo de execução, o que explica por que injeção de dependências é popular em Java mas praticamente inexistente em C Mais Mais. Neste trabalho apresentamos um sistema de introspecção para C Mais Mais 11 e mostramos como ele pode ser usado para melhorar uma implementação de Service Component Architecture (SCA) para C Mais Mais. Usamos vários novas funcionalidades de C Mais Mais 11 como perfect forwarding, variadic templates e lvalue references para melhorar a usabilidade da API de reflexão e minimizar o overhead de execução. === [en] Dependency injection, a form of inversion of control, is a way of structuring the configuration and composition of software components that brings many benefits such as a loose coupling of components. However, a generic dependency injection framework requires runtime type introspection and this is why dependency injection is popular in Java and almost non-existent in C plus plus. In this work we present a introspection system for C plus plus 11 and show how to use it to improve an implementation of the Service Component Architecture (SCA) for C plus plus. It uses several features of C plus plus 11 such as perfect forwarding, variadic templates and lvalue references to improve usability and minimize overhead.