<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
     "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<library 
    name="Program_options"
    dirname="program_options" id="program_options" 
    last-revision="$Date: 2007-11-25 13:38:02 -0500 (Sun, 25 Nov 2007) $" 
    xmlns:xi="http://www.w3.org/2001/XInclude">
  <libraryinfo>
    <author>
      <firstname>Vladimir</firstname>
      <surname>Prus</surname>
    </author>
    
    <copyright>
      <year>2002</year>
      <year>2003</year>
      <year>2004</year>
      <holder>Vladimir Prus</holder>
    </copyright>

    <legalnotice>
      <para>Distributed under the Boost Software License, Version 1.0.
      (See accompanying file <filename>LICENSE_1_0.txt</filename> or copy at 
      <ulink
      url="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</ulink>)
      </para>
    </legalnotice>

            
    <librarypurpose>
      Facilities to obtain configuration data from command line, config files
      and other sources</librarypurpose>
    <librarycategory name="category:data-structures"></librarycategory>
  </libraryinfo>
  
  <title>Boost.Program_options</title>
  
  <section>
    <title>Introduction</title>

    <para>The program_options library allows program developers to obtain
    <emphasis>program options</emphasis>, that is (name, value) pairs from the user,
    via conventional methods such as command line and config file.</para>

    <para>Why would you use such a library, and why is it better than parsing
    your command line by straightforward hand-written code?
      <itemizedlist>
        <listitem>
          <para>It's easier. The syntax for declaring options is simple, and
          the library itself is small. Things like conversion of option values to
          desired type and storing into program variables are handled
          automatically.
          </para>
        </listitem>
        <listitem>
          <para>Error reporting is better. All the problems with the command line are
            reported, while hand-written code can just misparse the input. In
            addition, the usage message can be automatically generated, to
            avoid falling out of sync with the real list of options.</para>
        </listitem>
        <listitem>
          <para>Options can be read from anywhere. Sooner or later the command
          line will be not enough for your users, and you'll want config files
          or maybe even environment variables. These can be added without significant 
          effort on your part.
          </para>
        </listitem>        
      </itemizedlist>
    </para>

    <para>
      Now let's see some examples of the library usage in the <xref
      linkend="program_options.tutorial"/>.
    </para>
    
  </section>

  <xi:include href="tutorial.xml"/>  
  <xi:include href="overview.xml"/>  
  
  <xi:include href="howto.xml"/>
  <xi:include href="design.xml"/>
  <xi:include href="acknowledgements.xml"/>    
   
  <xi:include href="autodoc.xml"/> 
</library>
