12 #pragma warning(disable : 4521)
19 #include "frc2/command/CommandGroupBase.h"
20 #include "frc2/command/CommandHelper.h"
31 :
public CommandHelper<CommandGroupBase, ParallelCommandGroup> {
42 std::vector<std::unique_ptr<Command>>&& commands);
52 template <
class... Types,
53 typename = std::enable_if_t<std::conjunction_v<
54 std::is_base_of<Command, std::remove_reference_t<Types>>...>>>
56 AddCommands(std::forward<Types>(commands)...);
67 template <
class... Types,
68 typename = std::enable_if_t<std::conjunction_v<
69 std::is_base_of<Command, std::remove_reference_t<Types>>...>>>
70 void AddCommands(Types&&... commands) {
71 std::vector<std::unique_ptr<Command>> foo;
72 ((void)foo.emplace_back(std::make_unique<std::remove_reference_t<Types>>(
73 std::forward<Types>(commands))),
75 AddCommands(std::move(foo));
82 void End(
bool interrupted)
override;
89 void AddCommands(std::vector<std::unique_ptr<Command>>&& commands)
override;
91 std::vector<std::pair<std::unique_ptr<Command>,
bool>> m_commands;
92 bool m_runWhenDisabled{
true};
93 bool isRunning =
false;