Subject: [Boost-bugs] [Boost C++ Libraries] #4700: Code bloat and slowing down compilation
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-09-30 21:35:42
#4700: Code bloat and slowing down compilation
------------------------------------------------+---------------------------
Reporter: Ilya Murav'jov <muravev@â¦> | Owner: samuel_krempp
Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: format
Version: Boost 1.44.0 | Severity: Optimization
Keywords: |
------------------------------------------------+---------------------------
1. Function basic_format::operator%(const T& x) generate distinct bits for
every type. It is too redundant to instantiate them for every "const char
[N]"! For example, one for "a", one for "ab", one for "abc" and so on.
Here is a patch:
{{{
template<int N_>
basic_format& operator%(char const (&x)[N_])
{ return io::detail::feed<CharT, Tr, Alloc, char const *
const&>(*this,(char const * const&)x); }
}}}
2. I use Boost.Format for i18n (heavily); just #include <boost/format.hpp>
and one (!) using of boost::format() gets over 400kb in object code and
~0.4 sec slowness (for gcc). So I want to include only
<boost/format/format_class.hpp> (declaration only) and instantiate types
in a distinct source.
But <boost/format/format_class.hpp> is not self all-sufficient. I have to
include something like this:
{{{
#include <boost/config.hpp>
#ifndef BOOST_NO_STD_LOCALE
#include <locale>
#endif
#include <boost/format/format_class.hpp>
}}}
Fix it please.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4700> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:04 UTC