20 #ifndef LIMI_DATASTRUCTURES_GENERICS_H 
   21 #define LIMI_DATASTRUCTURES_GENERICS_H 
   28 typedef std::function<void(std::ostream&)> printable;
 
   31 inline std::ostream& operator<<(std::ostream& os, 
const printable& p) {
 
   36 inline std::stringstream& operator<<(std::stringstream& os, 
const printable& p) {
 
   67   inline bool operator()(
const Key& a, 
const Key& b)
 const {
 
   83   inline printable operator()(
const Key& item)
 const {
 
   84     return [&](std::ostream& o) {
print(item, o);};
 
   92   virtual void print(
const Key& item, std::ostream& out) 
const = 0;
 
  103 template< 
class Key >
 
  105   virtual void print(
const Key& item, std::ostream& out)
 const override {
 
  112 #endif // LIMI_DATASTRUCTURES_GENERICS_H 
The printer base is what custom printers need to inherit from. 
Definition: generics.h:81
The main namespace of the library. 
Definition: antichain_algo.h:40
This class simply states that no symbols are independent. 
Definition: generics.h:66
Definition: generics.h:30
The template for the independence relation. 
Definition: generics.h:53
virtual void print(const Key &item, std::ostream &out) const  override
Prints an item to the out stream. 
Definition: generics.h:105
The default implementation of Limi::printer_base. 
Definition: generics.h:104
virtual void print(const Key &item, std::ostream &out) const  =0
Prints an item to the out stream.