1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<!--
file : documentation/cli/index.xhtml
author : Boris Kolpackov <boris@kolpackov.net>
copyright : Copyright (c) 2005-2010 Boris Kolpackov
license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt
-->
<head>
<title>libcult/documentation/cli</title>
<meta name="author" content="Boris Kolpackov"/>
<meta name="copyright" content="© 2005-2010 Boris Kolpackov"/>
<meta name="keywords" content="libcult,c++,command,line,interface,option,argument"/>
<meta name="description" content="libcult/documentation/cli"/>
<link rel="stylesheet" type="text/css" href="../default.css"/>
</head>
<body>
<div id="navigation">
<p>
<a href="../.."><code>libcult</code></a> <code>/</code>
<a href=".."><code>documentation</code></a> <code>/</code>
<code>cli</code>
</p>
</div>
<div id="content">
<p>The <em>libcult</em> command line interace library provides
mechanisms for extracting informtaion from the command line. The
following code fragment is from <code>libcult/examples/cli</code>:</p>
<pre class="cxx">
namespace
{
extern Char const help[] = "help";
extern Char const version[] = "version";
extern Char const outdir[] = "outdir";
}
typedef
CLI::Options<help, Boolean,
version, Boolean,
outdir, String>
Options;
Int
main (Int argc, Char* argv[])
{
try
{
Options options (CLI::parse<Options> (argc, argv));
if (options.value<help> ())
{
cerr << "usage: " << argv[0] << " [--help] [--version] [--outdir <dir>]"
<< endl;
return 0;
}
if (options.value<version> ())
{
cerr << argv[0] << " 1.2.3" << endl;
return 0;
}
if (String dir = options.value<outdir> ())
{
cerr << "outdir: " << dir << endl;
}
}
catch (CLI::UnexpectedOption const& e)
{
cerr << "unexpected option " << e.option () <<endl;
}
catch (CLI::OptionFormat const& e)
{
cerr << "bad format for " << e.option () << endl;
}
}
</pre>
</div>
<div id="docinfo">
<p>Copyright © 2005-2010 <a title="Boris Kolpackov"
href="http://kolpackov.net">Boris Kolpackov</a>.</p>
<div class="terms">
Permission is granted to copy, distribute and/or modify this document under
the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free
Documentation License, version 1.2</a>; with no Invariant Sections, no
Front-Cover Texts and no Back-Cover Texts.
</div>
</div>
</body>
</html>
|