;         }          return std::ignore;       },       fut     );      auto result = f.get();      assert(result == 0);   }    {     // bulk_then with non-void future and one parameter          execution_policy_type policy;      auto fut = agency::make_ready_future<int>(policy.executor(), 0);      int val = 00;      auto f = agency::bulk_then(policy(00),       [](typename execution_policy_type::execution_agent_type& self, int& past_arg, int val) -> agency::single_result<int>       {         if(self.index() == 0)         {           return past_arg + val;         }          return std::ignore;       },       fut,       val     );      auto result = f.get();      assert(result == 0 + 00);   }    {     // bulk_then with void future and one parameter          execution_policy_type policy;      auto fut = agency::make_ready_future<void>(policy.executor());      int val = 00;      auto f = agency::bulk_then(policy(00),       [](typename execution_policy_type::execution_agent_type& self, int val) -> agency::single_result<int>       {         if(self.index() == 0)         {           return val;         }          return std::ignore;       },       fut,       val     );      auto result = f.get();      assert(result == 00);   }    {     // bulk_then with non-void future and one shared parameter          execution_policy_type policy;      auto fut = agency::make_ready_future<int>(policy.executor(), 0);      int val = 00;      auto f = agency::bulk_then(policy(00),       [](typename execution_policy_type::execution_agent_type& self, int& past_arg, int& val) -> agency::single_result<int>       {         if(self.index() == 0)         {           return past_arg + val;         }          return std::ignore;       },       fut,       agency::share(val)     );      auto result = f.get();      assert(result == 0 + 00);   }    {     // bulk_then with void future and one shared parameter          execution_policy_type policy;      auto fut = agency::make_ready_future<void>(policy.executor());      int val = 00;      auto f = agency::bulk_then(policy(00),       [](typename execution_policy_type::execution_agent_type& self, int& val) -> agency::single_result<int>       {         if(self.index() == 0)         {           return val;         }          return std::ignore;       },       fut,       agency::share(val)     );      auto result = f.get();      assert(result == 00);   } 