lumiera_/src/lib/meta
Ichthyostega 6de24bc7f0 Ticket #956: decide layout and handling of GenNode elements
to carry out that rather obvious step, I was bound to consider
all the implications of choosing a given layout and handling pattern
for our external structure representation.

Finally, I settled upon the following decisions
- the value space represented within the DataCap is flat, not further structured
- the distinction between "attribute" and "nested object" is merely conceptual
  and will be enforced solely by the diff detection / representation protocol
- basically, a nested subtree may appear as an attribute; the difference
  between attributes and children lies solely in the way of access and referral:
  by-name vs. positional
- it is pointless to save space for the representation of the discriminator ID
- but we can omit any further explicit type tag, because
- we do *not* support programming by switch-on-type, and thus
- we do *not* support full introspection, only a passive type-safety check
- this is *not* a limitation, since we acknowledge that GenNode is a *Monad*
- and the partial function needed within any flatMap implementation
  maps naturally onto our Variant-Visitor; thus
- the DataCap can basically just *be* a Variant
- and GenNode has just to supply the neccessary shaffolding
  to turn that into a full fledged Monad implementation, including
  direct construction by wrapping a value and flatMap with tree walk
2015-05-02 01:11:39 +02:00
..
configflags.hpp cleanup configflags to use uint instead of char 2011-12-03 03:16:08 +01:00
duck-detector.hpp pragmatic fix for the long-standing problem of detecting increment operator 2012-10-10 05:20:17 +02:00
function-closure.hpp Switch from TR1 preveiw to the new standard headers 2014-04-03 22:42:48 +02:00
function-erasure.hpp C++ uses a more precise meaning of 'convertiblity' now 2014-05-09 00:56:31 +02:00
function.hpp Switch from TR1 preveiw to the new standard headers 2014-04-03 22:42:48 +02:00
generator-combinations.hpp clean up lib/meta namespaces 2011-12-03 03:15:59 +01:00
generator.hpp clean up lib/meta namespaces 2011-12-03 03:15:59 +01:00
maybe-compare.hpp Switch from TR1 preveiw to the new standard headers 2014-04-03 22:42:48 +02:00
no-instance.hpp WIP idea how to represent support for some timecode formats 2011-01-16 15:41:34 +01:00
size-trait.hpp STATIC_ASSERT to verify guessed size 2011-12-28 06:41:47 +01:00
trait-special.hpp Switch from TR1 preveiw to the new standard headers 2014-04-03 22:42:48 +02:00
trait.hpp Switch from TR1 preveiw to the new standard headers 2014-04-03 22:42:48 +02:00
tuple.hpp Switch from TR1 preveiw to the new standard headers 2014-04-03 22:42:48 +02:00
typelist-manip.hpp add includes missing in some metaprogramming headers 2012-01-07 03:11:51 +01:00
typelist-util.hpp fix a warning after C++11 transition (#898) 2015-04-17 03:12:08 +02:00
typelist.hpp clean up lib/meta namespaces 2011-12-03 03:15:59 +01:00
typeseq-util.hpp clean up lib/meta namespaces 2011-12-03 03:15:59 +01:00
util.hpp reorganise some boost::format usage 2013-09-01 17:36:05 +02:00
virtual-copy-support.hpp Ticket #956: decide layout and handling of GenNode elements 2015-05-02 01:11:39 +02:00