aboutsummaryrefslogtreecommitdiff
path: root/include/fruit/fruit_forward_decls.h
AgeCommit message (Collapse)Author
2018-08-18Add a PartialComponent::installComponentFunctions() method that allows to ↵Marco Poletti
install a variable number of components (typically by expanding a template parameter pack).
2017-12-27Add a .clang-format config file and reformat all C++ source code using that. ↵Marco Poletti
Also added some documentation on the preferred style in CONTRIBUTING.md.
2017-08-06Various improvements to the Doxygen documentation on Fruit classes and their ↵Marco Poletti
public methods.
2016-08-28No longer inline some component-related code, to reduce the executable size ↵Marco Poletti
of client code using Fruit. This yields a ~6x reduction in the benchmark with 100 classes (1.6MB -> 275KB).
2016-02-07Now PartialComponent is parameterized on human-readable binding types, ↵Marco Poletti
instead of metaprogramming types. This allows to hide metaprogramming types in template instantiation traces in errors, making them less verbose/confusing. This change is not fully backwards-compatible; Component no longer inherits from PartialComponent, and createComponent() now returns a PartialComponent. Even though PartialComponent is implicitly convertible to Component, an explicit cast to Component might be required in some cases.
2015-05-31Complete support for annotated types, with tests (and fixes for bugs that ↵Marco Poletti
slipped in the previous commit due to lack of tests).
2015-05-10Add support for injection of annotated types in {Component,Injector}Storage. ↵Marco Poletti
This is the first step towards support of annotated types. This has no user-visible changes yet, since {Partial,}Component and Injector still don't support annotated types.
2015-01-29No longer consider fruit::Requirements<...> as one of the exposed types when ↵Marco Poletti
determining what binding compressions to perform. Pass the list of exposed types as an std::vector instead of an std::initializer_list, allowing getTypeIdsForList to work.
2014-11-16First implementation of binding compression; reduces injection time by ~35% ↵Marco Poletti
when using virtual destructors.
2014-11-09Limit Provider to a single argument, it's easier to understand and it will ↵Marco Poletti
allow some specific optimizations later.
2014-11-08Split out forward declarations of Fruit internal types to a separate ↵Marco Poletti
fruit_internal_forward_decls.h file.
2014-11-08Minor improvements to Doxygen comments.Marco Poletti
2014-11-08Make component.h simpler to understand.Marco Poletti
2014-11-02Factor out the proof tree/forest implementation from ↵Marco Poletti
metaprogramming/component.h into a separate proof_trees.h.
2014-11-01Split the compile-time part of component_impl.h in ↵Marco Poletti
metaprogramming/component.h, and move the runtime part to component.defn.h.
2014-11-01Re-organize the source code. Merge component.utils.h into component_impl.h. ↵Marco Poletti
Now using .defn files for template/inline definitions.
2014-10-04Simplify the public interface: move PartialComponent into component.h, ↵Marco Poletti
inline a copy of Provider into Injector, remove unused forward declarations, move method definition out of public headers.
2014-10-04Refactor the implementation of Component: use ConsComp and drop the ↵Marco Poletti
ComponentImpl class.
2014-09-28Improve error reporting, move all user-visible errors to injection_errors.h ↵Marco Poletti
and remove all user-visible List<>s.
2014-09-13Revert "Change the representation of compile-time lists.". There is no ↵Marco Poletti
compile-time performance benefit with Clang, and the compile-time with GCC was ~10% worse. This reverts commit 2ccfbbfa767b216bdfe61f62cc1a79903e285ff6.
2014-09-13Change the representation of compile-time lists.Marco Poletti
2014-09-07Add the notion of NormalizedComponent, add a two-argument constructor of ↵Marco Poletti
Injector that takes a NormalizedComponent and a Component.
2014-09-07Split NormalizedComponentStorage out of InjectorStorage.Marco Poletti
2014-08-31Split InjectorStorage out of ComponentStorage.Marco Poletti
2014-08-24Improve compile-time error messages, and add tests for the improved ↵Marco Poletti
messages. Also test that all public headers can be included on their own, and add missing includes.
2014-08-23Minor changes.Marco Poletti
2014-08-20Remove the second registerFactory() method introduced together with ↵Marco Poletti
non-movable types support; the pre-existing registerFactory() method is enough.
2014-08-19Add injection support for unique_ptr for non-movable types.Marco Poletti
2014-07-27Minor changes: move code between classes, split PartialComponent out of ↵Marco Poletti
ComponentImpl, fix Clang warnings, add comments.
2014-06-29Split the Injector class, now Provider is a separate class.Marco Poletti
2014-06-28Rename Module->Component, UnsafeModule->ComponentStorage.Marco Poletti
2014-06-21Initial commit.Marco Poletti