1#ifndef SAUCE_INTERNAL_KEY_H_
2#define SAUCE_INTERNAL_KEY_H_
4#include <sauce/memory.h>
5#include <sauce/named.h>
6#include <sauce/internal/type_id.h>
14template<
typename Iface_>
18 typedef sauce::shared_ptr<Iface_> Ptr;
33template<
typename Iface_>
36 typedef typename Key<Iface_>::Iface Iface;
37 typedef typename Key<Iface_>::Ptr Ptr;
45template<
typename Iface_>
46class Key<sauce::shared_ptr<Iface_> > {
48 typedef typename Key<Iface_>::Iface Iface;
49 typedef typename Key<Iface_>::Ptr Ptr;
57template<
typename Iface_,
typename Name_>
61 typedef sauce::shared_ptr<Iface_> Ptr;
68namespace i = ::sauce::internal;
Wrap dependency requests with Named to choose one of several (statically) named alternatives.
Definition: named.h:12
The name of all statically unnamed dependencies.
Definition: named.h:17
A complete specification of a dependency request.
Definition: key.h:15
Named< Iface_, Unnamed > Normalized
Note Normalized is not Iface, but Named<Iface, Unnamed>.
Definition: key.h:27