box.hh File Reference

Provides pretty-printing box operations. More...

#include <iostream>
#include <string>
#include <memory>
Include dependency graph for box.hh:

Go to the source code of this file.

Classes

struct  aurelia::virtual_box
 Abstract virtual class for box elements. More...
struct  aurelia::box< ExactType >
 Abstract static class for box elements. More...
struct  aurelia::string_box
 Wrap a string as a pretty printing box. More...
struct  aurelia::h_box
 Horizontal direction tag. More...
struct  aurelia::v_box
 Vertical direction tag. More...
struct  aurelia::hv_box
 Horizontal or vertical direction tag. More...
struct  aurelia::virtual_boxList
struct  aurelia::box_list< ExactType >
 Static abstract class for lists of pretty printing boxes. More...
struct  aurelia::box_list_end
 Represents and empty list of boxes. More...
struct  aurelia::box_list_cons< Head, Tail >
 List of boxes. More...
struct  aurelia::any_box_list
 Box list wrapping a virtual box list. More...
struct  aurelia::container_box< Direction, VS, HS, IS, List >
 A container box with directions. More...
struct  aurelia::any_box
 Box wrapping a virtual box. More...
struct  aurelia::space_conf< VS, HS, IS >
 Tuple for space configuration. More...
struct  aurelia::max< a, b >
 Gets a maximum value from two constants at compile-time. More...
struct  aurelia::box_artifact< Direction, VS, HS, IS >
 Provides building operation for boxes. More...
struct  aurelia::print_space< HS >
 Utility to print out a non null constant of spaces. More...
struct  aurelia::print_space< 0U >
 Utility to print out a null number of spaces. More...

Namespaces

namespace  aurelia
 

Main namespace for Aurelia.


Typedefs

typedef string_box aurelia::S
 Alias for building string boxes.

Enumerations

enum  aurelia::Dir { HDir, VDir, HVDir }
 

Directions as run-time values.


Functions

template<typename ExactBox >
box_list_cons< ExactBox,
box_list_end > 
aurelia::append (const box_list_end &, const box< ExactBox > &b)
 Appends a box at the end of a list.
template<typename B , typename Tail , typename ExactBox >
box_list_cons< B, decltype(append(std::declval
< Tail >), std::declval
< ExactBox >)))> 
aurelia::append (const box_list_cons< B, Tail > &l, const box< ExactBox > &b)
 Appends a box at the end of a list.
template<typename ExactBox , typename ExactList >
 aurelia::decltype (append(std::declval< ExactList >(), std::declval< ExactBox >())) operator
 Builds a list from boxes.
ExactBox2 box_list_cons
< ExactBox, box_list_cons
< ExactBox2, box_list_end > > 
aurelia::operator, (const box< ExactBox > &s, const box< ExactBox2 > &t)
template<unsigned VS>
space_conf< VS, 0, 0 > aurelia::Vs ()
 Creates a space configuration with vertical specification.
template<unsigned HS>
space_conf< 0, HS, 0 > aurelia::Hs ()
 Creates a space configuration with horizontal specification.
template<unsigned IS>
space_conf< 0, 0, IS > aurelia::Is ()
 Creates a space configuration with identation specification.
template<unsigned VS1, unsigned HS1, unsigned IS1, unsigned VS2, unsigned HS2, unsigned IS2>
space_conf< max< VS1, VS2 >
::ret, max< HS1, HS2 >::ret,
max< IS1, IS2 >::ret > 
aurelia::operator, (const space_conf< VS1, HS1, IS1 > &, const space_conf< VS2, HS2, IS2 > &)
 Merges two configurations.
template<unsigned VS, unsigned HS, unsigned IS>
box_artifact< h_box, VS, HS, IS > aurelia::H (const space_conf< VS, HS, IS > &)
 Returns a builder for a horizontal box.
box_artifact< h_box, 0, 1, 0 > aurelia::H ()
 Returns a builder for a horizontal box.
template<unsigned VS, unsigned HS, unsigned IS>
box_artifact< v_box, VS, HS, IS > aurelia::V (const space_conf< VS, HS, IS > &)
 Returns a builder for a vertical box.
box_artifact< v_box, 0, 0, 0 > aurelia::V ()
 Returns a builder for a vertical box.
template<unsigned VS, unsigned HS, unsigned IS>
box_artifact< hv_box, VS, HS, IS > aurelia::HV (const space_conf< VS, HS, IS > &)
 Returns a builder for a horizontal/vertical box.
box_artifact< hv_box, 0, 1, 0 > aurelia::HV ()
 Returns a builder for a horizontal/vertical box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS, typename Head , typename Head2 , typename Tail >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const v_box &, const space_conf< VS, HS, IS > &, const box_list_cons< Head, box_list_cons< Head2, Tail > > &bl)
 Prints out vertically a list of boxes.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS, typename Head >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const v_box &, const space_conf< VS, HS, IS > &, const box_list_cons< Head, box_list_end > &bl)
 Prints out vertically a singleton of box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS>
unsigned aurelia::box_to_text (Stream &, unsigned pos, const v_box &, const space_conf< VS, HS, IS > &, const box_list_end &)
 Prints out vertically an empty list of boxes.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS, typename Head , typename Head2 , typename Tail >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const h_box &, const space_conf< VS, HS, IS > &, const box_list_cons< Head, box_list_cons< Head2, Tail > > &bl)
 Prints out horizontally a list of boxes.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS, typename Head >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const h_box &, const space_conf< VS, HS, IS > &, const box_list_cons< Head, box_list_end > &bl)
 Prints out horizontally a singleton of box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS>
unsigned aurelia::box_to_text (Stream &, unsigned pos, const h_box &, const space_conf< VS, HS, IS > &, const box_list_end &)
 Prints out horizontally an empty list of boxes.
template<typename Stream >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const string_box &str)
 Prints out a string_box.
template<typename Stream >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const any_box &b)
 Prints out an any_box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS, typename Head , typename Tail >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const container_box< v_box, VS, HS, IS, box_list_cons< Head, Tail > > &b)
 Prints out a vertical box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS>
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const container_box< v_box, VS, HS, IS, box_list_end > &)
 Prints out an empty vertical box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS, typename Head , typename Tail >
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const container_box< h_box, VS, HS, IS, box_list_cons< Head, Tail > > &b)
 Prints out a horizontal box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS>
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const container_box< h_box, VS, HS, IS, any_box_list > &b)
 Prints out a horizontal box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS>
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const container_box< v_box, VS, HS, IS, any_box_list > &b)
 Prints out a vertical box.
template<typename Stream , unsigned VS, unsigned HS, unsigned IS>
unsigned aurelia::box_to_text (Stream &s, unsigned pos, const container_box< h_box, VS, HS, IS, box_list_end > &)
 Prints out an empty horizontal box.
template<typename Stream , typename ExactBox >
Stream & aurelia::operator<< (Stream &s, const box< ExactBox > &b)
 Prints out a pretty-print box.

Variables

const box_list< ExactList > & aurelia::l

Detailed Description

Provides pretty-printing box operations.