diff --git a/src/lib/iter-tree-explorer.hpp b/src/lib/iter-tree-explorer.hpp index 25bff8f7c..49041c0c3 100644 --- a/src/lib/iter-tree-explorer.hpp +++ b/src/lib/iter-tree-explorer.hpp @@ -427,7 +427,7 @@ namespace lib { { using FunArgType = remove_reference_t; static_assert (std::is_convertible::value, - "the expansion functor must accept the source iterator or state core as parameter"); + "the bound functor must accept the source iterator or state core as parameter"); static auto build() { return [](ARG& arg) -> ARG& { return arg; }; } }; diff --git a/src/lib/meta/tuple-helper.hpp b/src/lib/meta/tuple-helper.hpp index 0e6e1e220..18f92f3ef 100644 --- a/src/lib/meta/tuple-helper.hpp +++ b/src/lib/meta/tuple-helper.hpp @@ -127,9 +127,15 @@ namespace meta { - /** match and rebind the type sequence from a tuple */ + /** temporary workaround: match and rebind the type sequence from a tuple */ template - struct Types> + struct RebindTySeq + { + using Seq = typename Types::Seq; + using List = typename Seq::List; + }; + template + struct RebindTySeq> { using Seq = typename Types::Seq; using List = typename Seq::List; diff --git a/src/proc/control/command-simple-closure.hpp b/src/proc/control/command-simple-closure.hpp index 5b7e78d17..58c0f47c6 100644 --- a/src/proc/control/command-simple-closure.hpp +++ b/src/proc/control/command-simple-closure.hpp @@ -80,7 +80,7 @@ namespace control { using ArgumentBuff = InPlaceBuffer; using ArgTuple = typename ArgHolder::ArgTuple; - using Args = typename Types::Seq; + using Args = typename lib::meta::RebindTySeq::Seq; // std::tuple to Types /* ====== in-place argument storage ====== */ diff --git a/src/proc/control/command-storage-holder.hpp b/src/proc/control/command-storage-holder.hpp index 7a3221bbf..9dd50ffdb 100644 --- a/src/proc/control/command-storage-holder.hpp +++ b/src/proc/control/command-storage-holder.hpp @@ -86,7 +86,7 @@ namespace control { using MementoBuff = InPlaceBuffer; using ArgTuple = typename ArgHolder::ArgTuple; - using Args = typename Types::Seq; + using Args = typename lib::meta::RebindTySeq::Seq; // std::tuple to Types /* ====== in-place storage buffers ====== */ diff --git a/tests/library/meta/tuple-diagnostics.hpp b/tests/library/meta/tuple-diagnostics.hpp index 27a4f5c4a..019c013b9 100644 --- a/tests/library/meta/tuple-diagnostics.hpp +++ b/tests/library/meta/tuple-diagnostics.hpp @@ -80,7 +80,7 @@ namespace test { string > showType () { - using TypeList = typename Types::List; + using TypeList = typename RebindTySeq::List; using DumpPrinter = InstantiateChained; return "TUPLE" diff --git a/tests/library/meta/tuple-helper-test.cpp b/tests/library/meta/tuple-helper-test.cpp index 6b6c69705..477783d55 100644 --- a/tests/library/meta/tuple-helper-test.cpp +++ b/tests/library/meta/tuple-helper-test.cpp @@ -120,8 +120,8 @@ namespace test { typedef Types1::List L1; // starting from an existing Typelist... typedef Tuple T_L1; // derive a tuple type from this typelist - typedef Types::Seq Seq1; // extract the underlying type sequence - + typedef RebindTySeq::Seq Seq1; + // extract the underlying type sequence DISPLAY (T_L1); DISPLAY (Seq1); diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 918374823..7cd94d9c1 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -6787,6 +6787,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +