/* CMDLINE.hpp - abstraction of the usual commandline, a sequence of strings Copyright (C) CinelerraCV 2007, Hermann Vosseler This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef UTIL_CMDLINE_H #define UTIL_CMDLINE_H #include #include #include namespace util { using std::string; using std::vector; using std::ostream; typedef vector VectS; /** * Abstraction of the usual "int argc, int** argv"-Commandline, * to be able to treat it as a vector of strings. Inherits from * vector, but provides convienient conversions to * string (joining delimited by space)... */ class Cmdline : public VectS { public: Cmdline (int argc, char* argv[]); explicit Cmdline (const string cmdline); operator string () const; VectS& operator= (const VectS& source) { return VectS::operator= (source); } // inherited ctors template Cmdline (In first, In last) : VectS (first,last) {} Cmdline () : VectS () {} }; /** for outputting Cmdline objects */ inline ostream& operator<< (ostream& os, const Cmdline& cmdL) { return os << (string (cmdL)); } } // namespace util #endif