#pragma once #include #include #include #include "global.h" using namespace std; class Command{ const string cmd; const vector args; public: Command(string cmd); Command(string cmd,vector args); Command(string cmd,initializer_list l); Command(initializer_list l); template Command(string cmd,A... a) :cmd(cmd),args{a...}{} Command(const Command &other) = default; const string& command() const; const vector& arguments() const; const string& argument(i64 index) const; const string& operator[](i64 index) const; // 0 is command, >=1 is arguments };