// Copyright (C) 2003 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #ifndef DLIB_CMD_LINE_PARSEr_ #define DLIB_CMD_LINE_PARSEr_ #include "cmd_line_parser/cmd_line_parser_kernel_1.h" #include "cmd_line_parser/cmd_line_parser_kernel_c.h" #include "cmd_line_parser/cmd_line_parser_print_1.h" #include "cmd_line_parser/cmd_line_parser_check_1.h" #include "cmd_line_parser/cmd_line_parser_check_c.h" #include #include "cmd_line_parser/get_option.h" #include "map.h" #include "sequence.h" namespace dlib { // ---------------------------------------------------------------------------------------- template < typename charT > class impl_cmd_line_parser { /*! This class is basically just a big templated typedef for building a complete command line parser type out of all the parts it needs. !*/ impl_cmd_line_parser() {} typedef typename sequence >::kernel_2a sequence_2a; typedef typename sequence*>::kernel_2a psequence_2a; typedef typename map,void*>::kernel_1a map_1a_string; public: typedef cmd_line_parser_kernel_1 kernel_1a; typedef cmd_line_parser_kernel_c kernel_1a_c; typedef cmd_line_parser_print_1 print_1a_c; typedef cmd_line_parser_check_c > check_1a_c; }; // ---------------------------------------------------------------------------------------- template < typename charT > class cmd_line_parser : public impl_cmd_line_parser::check_1a_c { public: // These typedefs are here for backwards compatibility with previous versions of dlib. typedef cmd_line_parser kernel_1a; typedef cmd_line_parser kernel_1a_c; typedef cmd_line_parser print_1a; typedef cmd_line_parser print_1a_c; typedef cmd_line_parser check_1a; typedef cmd_line_parser check_1a_c; }; template < typename charT > inline void swap ( cmd_line_parser& a, cmd_line_parser& b ) { a.swap(b); } // ---------------------------------------------------------------------------------------- typedef cmd_line_parser command_line_parser; typedef cmd_line_parser wcommand_line_parser; // ---------------------------------------------------------------------------------------- } #endif // DLIB_CMD_LINE_PARSEr_