|
Boost Users : |
From: Andrea Carbone (andrea.carbone_at_[hidden])
Date: 2006-11-01 09:01:00
Hello,
I am working on a little class using the property_tree lib.
MSVC 7.1, boost 1.33.1 and latest property_tree cvs from sandbox.
I have simply Pimpled the boost::property_tree::ptree class and
implemented a templated get<> to extract values from a conf file ...
I don't know if it is fair to attach files to the mail so I just paste
the header...
Here the interface:
#ifndef xml_config_t_H_INCLUDED
#define xml_config_t_H_INCLUDED
//---------------------------------------------------------------------
#include <string>
#include <memory>
//---------------------------------------------------------------------
//just tags ...
namespace all { namespace core{
namespace detail
{
struct xml_t{};
struct ini_t{};
}
static const core::detail::xml_t xml = core::detail::xml_t();
static const core::detail::ini_t ini = core::detail::ini_t();
}}
//---------------------------------------------------------------------
namespace all { namespace core{
//the implementation
namespace detail{class xml_config_impl;}
class xml_config_t;
}}
//---------------------------------------------------------------------
class all::core::xml_config_t
{
public:
///Constructor
xml_config_t();
~xml_config_t();
///this one calls read_xml
void load(core::detail::xml_t, const std::string&);
///this one calls read_ini
void load(core::detail::ini_t, const std::string&);
public:
///the template get method .. calls ptree::get<T> ....
template <typename T>
T get(const std::string&, const T& defval = T()) const;
private:
//pimpl idiom
std::auto_ptr<core::detail::xml_config_impl> impl;
};
//---------------------------------------------------------------------------
#endif //xml_config_t_H_INCLUDED
//---------------------------------------------------------------------------
The code compiles and it actually works ... that is fine.
But the problem is that Compiling the class as a static lib, produces an
huge library (~14 MB !!).
I am compiling wiht /MT flag .. RTTI is off and there are just default
settings ...
Why such a huge library file?
The templated method is defined for some builtin data types such as int,
float, long ...etc ...
Thanks for your attention ....
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net