From e8c4dead5cffca4c957c23cc4ac8add27a043737 Mon Sep 17 00:00:00 2001 From: Petr Rockai <me@mornfall.net> Date: Sun, 23 Jun 2019 20:40:28 +0000 Subject: [PATCH] MC: Add prepend{,_f} methods to Weaver. --- divine/mc/weaver.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/divine/mc/weaver.hpp b/divine/mc/weaver.hpp index 6e9282827..3bd43d804 100644 --- a/divine/mc/weaver.hpp +++ b/divine/mc/weaver.hpp @@ -114,6 +114,13 @@ namespace divine::mc return Extend< ExMachines... >( std::tuple_cat( _machines, ext ) ); } + template< typename... ExMachines > + auto prepend( ExMachines... exm ) + { + std::tuple< ExMachines... > ext( exm... ); + return Weaver< TQ, ExMachines..., Machines... >( std::tuple_cat( ext, _machines ) ); + } + template< typename M > struct Ref : std::reference_wrapper< M > { @@ -172,6 +179,12 @@ namespace divine::mc return extend( Lambda< F >( fs ) ... ); } + template< typename... F > + auto prepend_f( F... fs ) + { + return prepend( Lambda< F >( fs ) ... ); + } + Weaver( MachineT mt ) : _machines( mt ) {} Weaver() = default; -- GitLab