// 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 <string>
#include "map.h"
#include "sequence.h"
namespace dlib
{
template <
typename charT
>
class cmd_line_parser
{
cmd_line_parser() {}
typedef typename sequence<std::basic_string<charT> >::kernel_2a sequence_2a;
typedef typename sequence<std::basic_string<charT>*>::kernel_2a psequence_2a;
typedef typename map<std::basic_string<charT>,void*>::kernel_1a map_1a_string;
public:
//----------- kernels ---------------
// kernel_1a
typedef cmd_line_parser_kernel_1<charT,map_1a_string,sequence_2a,psequence_2a>
kernel_1a;
typedef cmd_line_parser_kernel_c<kernel_1a>
kernel_1a_c;
//----------- extensions ---------------
// print_1 extend kernel_1a
typedef cmd_line_parser_print_1<kernel_1a>
print_1a;
typedef cmd_line_parser_print_1<kernel_1a_c>
print_1a_c;
// check_1 extend print_1a
typedef cmd_line_parser_check_1<print_1a>
check_1a;
typedef cmd_line_parser_check_c<cmd_line_parser_check_1<print_1a_c> >
check_1a_c;
};
}
#endif // DLIB_CMD_LINE_PARSEr_