Navigator: resolve problem with including anonymous namespace

...yet I do not want to move all of the traits over into the
publicly visible lib::iter_explorer namespace -- I'm quite happy
with these traits being clearly marked as local internal details
This commit is contained in:
Fischlurch 2017-12-23 00:42:18 +01:00
parent a459468e3e
commit 9f171682ce
2 changed files with 35 additions and 19 deletions

View file

@ -366,8 +366,13 @@ namespace lib {
using SrcVal = typename SrcIter::value_type;
};
}//(End) TreeExplorer traits
namespace iter_explorer { // Implementation of Iterator decorating layers...
/**
* @internal technical details of binding a functor into the TreeExplorer.
@ -395,7 +400,7 @@ namespace lib {
* @tparam SRC the source iterator type to apply when attempting to use a generic lambda as functor
*/
template<class FUN, typename SRC>
struct _BoundFunctorTraits
struct _BoundFunctor
{
/** handle all regular "function-like" entities */
template<typename F, typename SEL =void>
@ -455,12 +460,7 @@ namespace lib {
};
};
}//(End) TreeExplorer traits
namespace iter_explorer { // Implementation of Iterator decorating layers...
/**
* @internal Base of pipe processing decorator chain.
@ -517,7 +517,7 @@ namespace lib {
: public SRC
{
static_assert(can_IterForEach<SRC>::value, "Lumiera Iterator required as source");
using _Traits = _BoundFunctorTraits<FUN,SRC>;
using _Traits = _BoundFunctor<FUN,SRC>;
using ExpandFunctor = typename _Traits::Functor;
using ResIter = typename _DecoratorTraits<typename _Traits::Res>::SrcIter;
@ -661,7 +661,7 @@ namespace lib {
: public SRC
{
static_assert(can_IterForEach<SRC>::value, "Lumiera Iterator required as source");
using _Traits = _BoundFunctorTraits<FUN,SRC>;
using _Traits = _BoundFunctor<FUN,SRC>;
using Res = typename _Traits::Res;
using TransformFunctor = typename _Traits::Functor;
@ -748,7 +748,7 @@ namespace lib {
: public SRC
{
static_assert(can_IterForEach<SRC>::value, "Lumiera Iterator required as source");
using _Traits = _BoundFunctorTraits<FUN,SRC>;
using _Traits = _BoundFunctor<FUN,SRC>;
using Res = typename _Traits::Res;
static_assert(std::is_constructible<bool, Res>::value, "Functor must be a predicate");

View file

@ -7602,7 +7602,7 @@
<node CREATED="1513561531383" ID="ID_442154302" MODIFIED="1513561547728" TEXT="Match-Algo mu&#xdf; start-Offset verwalten und draufschlagen"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513561577840" HGAP="52" ID="ID_260039139" MODIFIED="1513978305941" TEXT="Struktur Navigations-Zustand" VSHIFT="13">
<node COLOR="#338800" CREATED="1513561577840" FOLDED="true" HGAP="63" ID="ID_260039139" MODIFIED="1513985143504" TEXT="Struktur Navigations-Zustand" VSHIFT="22">
<icon BUILTIN="button_ok"/>
<node CREATED="1513561744004" ID="ID_937539446" MODIFIED="1513961543467" TEXT="h&#xe4;ngt ab von relativ/absolut?">
<arrowlink COLOR="#9493b7" DESTINATION="ID_1500554436" ENDARROW="Default" ENDINCLINATION="91;103;" ID="Arrow_ID_811314610" STARTARROW="None" STARTINCLINATION="-39;0;"/>
@ -7974,8 +7974,8 @@
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513961620603" ID="ID_1014293898" MODIFIED="1513961632617" TEXT="Implementierung">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513962702097" ID="ID_1829231358" MODIFIED="1513963104538" TEXT="Iterator-Typ konstruieren">
<arrowlink COLOR="#1d3877" DESTINATION="ID_989478065" ENDARROW="Default" ENDINCLINATION="33;-151;" ID="Arrow_ID_1500458185" STARTARROW="Default" STARTINCLINATION="-56;-2;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513962702097" ID="ID_1829231358" MODIFIED="1513985168996" TEXT="Iterator-Typ konstruieren">
<arrowlink COLOR="#1d3877" DESTINATION="ID_989478065" ENDARROW="Default" ENDINCLINATION="33;-151;" ID="Arrow_ID_1500458185" STARTARROW="Default" STARTINCLINATION="-102;2;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1513966648491" ID="ID_558045889" MODIFIED="1513966652550" TEXT="Anforderungen">
<node CREATED="1513962999465" ID="ID_677650141" MODIFIED="1513963008827" TEXT="ist nicht mehr IterSource&lt;String&gt;::iterator"/>
@ -8014,7 +8014,7 @@
</richcontent>
</node>
</node>
<node CREATED="1513980929860" ID="ID_1710959906" MODIFIED="1513980939173" TEXT="Alternativen?">
<node CREATED="1513980929860" FOLDED="true" ID="ID_1710959906" MODIFIED="1513985103849" TEXT="Alternativen?">
<icon BUILTIN="help"/>
<node CREATED="1513980747077" ID="ID_458778699" MODIFIED="1513980959957" TEXT="IterExploreSource geschickt nutzen">
<icon BUILTIN="button_cancel"/>
@ -8037,7 +8037,8 @@
</node>
</node>
</node>
<node CREATED="1513981063250" ID="ID_1701586789" MODIFIED="1513981066214" TEXT="Builder">
<node CREATED="1513981063250" ID="ID_1701586789" MODIFIED="1513985115106" TEXT="Builder">
<icon BUILTIN="idea"/>
<node CREATED="1513981080616" ID="ID_75384138" MODIFIED="1513981107456" TEXT="bekommt TreeStructureNavigator *"/>
<node CREATED="1513981138280" ID="ID_878429069" MODIFIED="1513981146075" TEXT="baut darauf den IterSource::iterator"/>
<node CREATED="1513981147519" ID="ID_1838710944" MODIFIED="1513981198132" TEXT="setzt darauf einen TreeExplorer auf"/>
@ -8067,6 +8068,21 @@
<icon BUILTIN="info"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513986023498" ID="ID_1413967372" MODIFIED="1513986029842" TEXT="Integration mit TreeExplorer">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1513986032290" ID="ID_1427647343" MODIFIED="1513986048710" TEXT="Problem: Zugang zur IterSource">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513986054199" ID="ID_1239076586" MODIFIED="1513986063345" TEXT="bisher: protected im IterSource::iterator"/>
<node CREATED="1513986114902" ID="ID_1775644602" MODIFIED="1513986130220" TEXT="&quot;riecht&quot; nach einem generellen Problem">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1513986064509" ID="ID_1794003959" MODIFIED="1513986083318" TEXT="nun m&#xfc;&#xdf;te man...">
<node CREATED="1513986085162" ID="ID_1791331544" MODIFIED="1513986090214" TEXT="von au&#xdf;en daran kommen"/>
<node CREATED="1513986090946" ID="ID_668980524" MODIFIED="1513986103340" TEXT="und auch noch downcasten auf TreeStructureNavigator"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513962765760" ID="ID_795911284" MODIFIED="1513963084358" TEXT="Demo-Impl mit GenNode-Tree">
<icon BUILTIN="flag-yellow"/>
</node>
@ -8082,8 +8098,8 @@
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510941740069" ID="ID_1408571420" MODIFIED="1513560742303" TEXT="erweiterter ChildIter">
<arrowlink COLOR="#283b63" DESTINATION="ID_596422747" ENDARROW="Default" ENDINCLINATION="66;49;" ID="Arrow_ID_1521598219" STARTARROW="Default" STARTINCLINATION="94;-19;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513560671819" ID="ID_989478065" MODIFIED="1513962937735" TEXT="Interface umstellen">
<linktarget COLOR="#1d3877" DESTINATION="ID_989478065" ENDARROW="Default" ENDINCLINATION="33;-151;" ID="Arrow_ID_1500458185" SOURCE="ID_1829231358" STARTARROW="Default" STARTINCLINATION="-56;-2;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513560671819" ID="ID_989478065" MODIFIED="1513985168997" TEXT="Interface umstellen">
<linktarget COLOR="#1d3877" DESTINATION="ID_989478065" ENDARROW="Default" ENDINCLINATION="33;-151;" ID="Arrow_ID_1500458185" SOURCE="ID_1829231358" STARTARROW="Default" STARTINCLINATION="-102;2;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513560680562" ID="ID_634877617" MODIFIED="1513560754433" TEXT="TreeExplorer-Ausdr&#xfc;cke">