Boost logo

Boost :

From: Martin Bosticky (MBosticky_at_[hidden])
Date: 2002-06-18 23:52:45


Is there a Command Line Parser or something around that people use a lot? I
am getting really annoyed having to write command line interpreter class for
each new project. I don't know how well this fits in with the concepts of
boost but surely this is a repeated problem that everybody has every time
they create a new project?

Cheers, Martin.

-----Original Message-----
From: David Abrahams [mailto:david.abrahams_at_[hidden]]
Sent: Wednesday, 19 June 2002 12:04
To: Paul Mensonides; Vesa Karvonen; boost
Subject: [boost] Recent PP changes/EDG

I just got this message from Ralf, FYI:
--------

The EDG build times are totally out of control. In an attempt to narrow
down the problem, I modified the bjam -d+2 cxx command for minimal.cpp
to use -E instead of -c. Here is a tiny fragment from the output with
######## comments:

namespace boost {
namespace mpl {

struct null_argument;
typedef mpl::int_t<9223372036854775807> null_t;

}
}

#line 25
"/tmp_mnt/net/boa/home1/rwgk/boost_mpl_ublas/boost/mpl/type_list.hpp"

namespace boost {
namespace mpl {

struct type_list_tag;

template<>
struct list_traits<type_list_tag>
    : mpl::basic_list_traits<type_list_tag>
{
    typedef mpl::null_argument null_argument;
};

######## Until this point output is fast, with only a few minor delays.
######## Then the output stops completely for 40 seconds, after which
######## the T0, T1, ... are added slowly one by one, then it pauses
######## again for a ~minute at "struct type_list" before printing a
######## considerable amount of more output. This pattern is repeated
######## a few times.
######## Total time to pre-process minimal.cpp: 6 minutes 43 seconds!

template< typename T0 = mpl::null_argument , typename T1 =
mpl::null_argument\
 , typename T2 = mpl::null_argument , typename T3 = mpl::null_argument ,
typen\
ame T4 = mpl::null_argument , typename T5 = mpl::null_argument , typename
T6 =\
 mpl::null_argument , typename T7 = mpl::null_argument , typename T8 =
mpl::nu\
ll_argument , typename T9 = mpl::null_argument , typename T10 =
mpl::null_argu\
ment , typename T11 = mpl::null_argument , typename T12 =
mpl::null_argument ,\
 typename T13 = mpl::null_argument , typename T14 = mpl::null_argument >
struct type_list
    : mpl::list_factory< type_list_tag, T0 , T1 , T2 , T3 , T4 , T5 , T6 ,
T7\
 , T8 , T9 , T10 , T11 , T12 , T13 , T14 >::type
{
    typedef typename mpl::list_factory<
          type_list_tag
        , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ,
T12 ,\
 T13 , T14
>::type type;
};

}
}

The full preprocessor output is here:

    http://cci.lbl.gov/~rwgk/tmp/minimal_cpp_cxx_E_output

Is this enough of a clue? Is there hope that pre-preprocessed files
could alleviate the compile-time problems?

+---------------------------------------------------------------+
                  David Abrahams
      C++ Booster (http://www.boost.org) O__ ==
      Pythonista (http://www.python.org) c/ /'_ ==
  resume: http://users.rcn.com/abrahams/resume.html (*) \(*) ==
          email: david.abrahams_at_[hidden]
+---------------------------------------------------------------+

_______________________________________________
Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk