1 #include "resolver.h"
 2 #include "sample_classes.h"
 3 
 4 #include <iostream>
 5 
 6 using namespace std;
 7 using namespace dependency;
 8 
 9 
10 extern void register_all_bindings();
11 
12 
13 
14 int main(){
15    Zone request1("request1");
16    Zone request2("request2");
17 
18    std::cout << __FUNCTION__ << std::endl;
19 
20 
21    register_all_bindings();
22    
23    
24    A* a = supply<A>::fetch(request1);
25    B* b = supply<B>::fetch(request2);
26    a->activity();
27    b->dothing();
28 
29    a = supply<A>::fetch(request2);
30    b = supply<B>::fetch(request1);
31    a->activity();
32    b->dothing();
33 
34    a = supply<A>::fetch(request2);
35    b = supply<B>::fetch(request1);
36    a->activity();
37    b->dothing();
38 
39    a = supply<A,1>::fetch(request1);
40    b = supply<B,1>::fetch(request2);
41    a->activity();
42    b->dothing();
43 
44    a = supply<A,1>::fetch(request2);
45    b = supply<B,1>::fetch(request1);
46    a->activity();
47    b->dothing();
48 
49    C* c = supply<C>::fetch(request1);
50    c->action();
51    try{
52       c = supply<C,3>::fetch(request1);
53    }catch(logic_error& le){
54       cout << le.what() << endl;
55    }
56 }


syntax highlighted by Code2HTML, v. 0.9.1