Om
container_front_sink.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Sink_ContainerFrontSink_
16 
17  #define Om_Sink_ContainerFrontSink_ \
18  Om::Sink::ContainerFrontSink
19 
20  #include "om/sink/default_sink.hpp"
21 
22 namespace Om {
23 
24  namespace Sink {
25 
26  // MARK: - Om::Sink::ContainerFrontSink
27 
32  template <
33  typename ThisItem,
34  typename ThisContainer
35  >
37  public DefaultSink<
38  ThisItem,
39  ContainerFrontSink<
40  ThisItem,
41  ThisContainer
42  >
43  > {
44 
45  public: // MARK: public (non-static)
46 
47  explicit ContainerFrontSink(ThisContainer &);
48 
50 
51  virtual void Push(ThisItem &);
52 
54 
55  private: // MARK: private (non-static)
56 
61  ThisContainer & thisContainer;
62 
63  };
64 
65  }
66 
67 }
68 
69 namespace boost {
70 
71  // MARK: - boost::
72 
73  template <
74  typename TheItem,
75  typename TheContainer
76  >
77  void swap(
79  TheItem,
80  TheContainer
81  > &,
83  TheItem,
84  TheContainer
85  > &
86  );
87 
88 }
89 
91 
92 #endif
A Sink adapter for a container; pushes items into the front.
ThisContainer & thisContainer
The container to push into.
ContainerFrontSink & operator=(ContainerFrontSink)
ContainerFrontSink(ThisContainer &)
virtual void Push(ThisItem &)
Pushes an item.
void Swap(ContainerFrontSink &)
A partial Sink implementation.
Om header file.
The Om library.
Definition: code_point.hpp:26
void swap(Om::Language::Expression &, Om::Language::Expression &)