[Libreoffice-commits] core.git: configure.ac external/boost RepositoryExternal.mk

Michael Stahl mstahl at redhat.com
Mon May 30 15:35:19 UTC 2016


 RepositoryExternal.mk                                                  |    1 
 configure.ac                                                           |    7 
 external/boost/UnpackedTarball_boost.mk                                |   46 
 external/boost/boost.3780.aliasing.patch                               |   23 
 external/boost/boost.6369.warnings.patch                               |  305 --
 external/boost/boost.date_time.Wshadow.warnings.patch                  |   19 
 external/boost/boost.date_time.Wshadow.warnings.patch.1                |  117 -
 external/boost/boost.gcc47679.patch                                    |   63 
 external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch |   21 
 external/boost/boost.preprocessor.Wundef.warnings.patch                |  125 -
 external/boost/boost.property_tree.Wshadow.warnings.patch.1            |  320 --
 external/boost/boost.spirit.Wshadow.warnings.patch                     |   71 
 external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch      |   28 
 external/boost/boost.spirit.Wunused-parameter.warnings.patch           |   47 
 external/boost/boost.type_index.Wundef.warnings.patch                  |   12 
 external/boost/boost.wdeprecated-auto_ptr.patch.0                      |   46 
 external/boost/boost.wunused.patch                                     |   20 
 external/boost/boost_1_44_0-unused-parameters.patch                    | 1169 ----------
 external/boost/boost_1_59_0.iostreams.wshadow.patch                    |  197 -
 external/boost/boost_1_59_0.iostreams.wunused.patch                    |   12 
 external/boost/boost_1_59_0.multi_array.wshadow.patch                  |  484 ----
 external/boost/boost_1_59_0.property_tree.wreturn-type.patch           |    2 
 external/boost/boost_1_59_0.property_tree.wshadow.patch                |  104 
 external/boost/boost_1_59_0.property_tree.wtype-limits.patch           |   19 
 external/boost/boost_1_59_0.rational.wshadow.patch                     |   12 
 external/boost/fallthrough.patch.0                                     |   46 
 external/boost/gcc6-warnings.patch.0                                   |   65 
 external/boost/include/boost/algorithm/string.hpp                      |   23 
 external/boost/include/boost/algorithm/string/case_conv.hpp            |   23 
 external/boost/include/boost/algorithm/string/classification.hpp       |   23 
 external/boost/include/boost/algorithm/string/predicate.hpp            |   23 
 external/boost/include/boost/algorithm/string/split.hpp                |   23 
 external/boost/include/boost/any.hpp                                   |   23 
 external/boost/include/boost/archive/iterators/base64_from_binary.hpp  |   23 
 external/boost/include/boost/archive/iterators/binary_from_base64.hpp  |   23 
 external/boost/include/boost/archive/iterators/remove_whitespace.hpp   |   23 
 external/boost/include/boost/archive/iterators/transform_width.hpp     |   23 
 external/boost/include/boost/asio.hpp                                  |   23 
 external/boost/include/boost/assign.hpp                                |   23 
 external/boost/include/boost/bind.hpp                                  |   23 
 external/boost/include/boost/cast.hpp                                  |   23 
 external/boost/include/boost/checked_delete.hpp                        |   23 
 external/boost/include/boost/container/deque.hpp                       |   23 
 external/boost/include/boost/cstdint.hpp                               |   23 
 external/boost/include/boost/current_function.hpp                      |   23 
 external/boost/include/boost/date_time.hpp                             |   23 
 external/boost/include/boost/date_time/posix_time/posix_time.hpp       |   23 
 external/boost/include/boost/enable_shared_from_this.hpp               |   23 
 external/boost/include/boost/filesystem.hpp                            |   23 
 external/boost/include/boost/filesystem/path.hpp                       |   23 
 external/boost/include/boost/foreach.hpp                               |   23 
 external/boost/include/boost/format.hpp                                |   23 
 external/boost/include/boost/function.hpp                              |   23 
 external/boost/include/boost/functional/hash.hpp                       |   23 
 external/boost/include/boost/fusion/adapted/std_pair.hpp               |   23 
 external/boost/include/boost/fusion/include/adapt_struct.hpp           |   23 
 external/boost/include/boost/intrusive/circular_list_algorithms.hpp    |   23 
 external/boost/include/boost/intrusive_ptr.hpp                         |   23 
 external/boost/include/boost/io/ios_state.hpp                          |   23 
 external/boost/include/boost/iostreams/device/file_descriptor.hpp      |   23 
 external/boost/include/boost/iostreams/filter/gzip.hpp                 |   23 
 external/boost/include/boost/iostreams/filtering_stream.hpp            |   23 
 external/boost/include/boost/iterator/iterator_facade.hpp              |   23 
 external/boost/include/boost/lexical_cast.hpp                          |   23 
 external/boost/include/boost/logic/tribool.hpp                         |   23 
 external/boost/include/boost/make_shared.hpp                           |   23 
 external/boost/include/boost/math/special_functions/expm1.hpp          |   23 
 external/boost/include/boost/math/special_functions/log1p.hpp          |   23 
 external/boost/include/boost/math/special_functions/sinc.hpp           |   23 
 external/boost/include/boost/multi_array.hpp                           |   23 
 external/boost/include/boost/noncopyable.hpp                           |   23 
 external/boost/include/boost/none.hpp                                  |   23 
 external/boost/include/boost/numeric/conversion/cast.hpp               |   23 
 external/boost/include/boost/operators.hpp                             |   23 
 external/boost/include/boost/optional.hpp                              |   23 
 external/boost/include/boost/optional/optional.hpp                     |   23 
 external/boost/include/boost/preprocessor/stringize.hpp                |   23 
 external/boost/include/boost/program_options.hpp                       |   23 
 external/boost/include/boost/property_tree/json_parser.hpp             |   23 
 external/boost/include/boost/property_tree/ptree.hpp                   |   23 
 external/boost/include/boost/ptr_container/ptr_vector.hpp              |   23 
 external/boost/include/boost/range/adaptor/reversed.hpp                |   23 
 external/boost/include/boost/range/iterator_range.hpp                  |   23 
 external/boost/include/boost/rational.hpp                              |   23 
 external/boost/include/boost/ref.hpp                                   |   23 
 external/boost/include/boost/scoped_array.hpp                          |   23 
 external/boost/include/boost/scoped_ptr.hpp                            |   23 
 external/boost/include/boost/shared_array.hpp                          |   23 
 external/boost/include/boost/shared_ptr.hpp                            |   23 
 external/boost/include/boost/spirit.hpp                                |   23 
 external/boost/include/boost/spirit/include/classic.hpp                |   23 
 external/boost/include/boost/spirit/include/classic_core.hpp           |   23 
 external/boost/include/boost/spirit/include/classic_error_handling.hpp |   23 
 external/boost/include/boost/spirit/include/classic_file_iterator.hpp  |   23 
 external/boost/include/boost/spirit/include/classic_utility.hpp        |   23 
 external/boost/include/boost/spirit/include/classic_while.hpp          |   23 
 external/boost/include/boost/spirit/include/phoenix.hpp                |   23 
 external/boost/include/boost/spirit/include/qi.hpp                     |   23 
 external/boost/include/boost/spirit/include/qi_attr.hpp                |   23 
 external/boost/include/boost/spirit/include/qi_lit.hpp                 |   23 
 external/boost/include/boost/spirit/include/qi_optional.hpp            |   23 
 external/boost/include/boost/spirit/include/qi_parse_attr.hpp          |   23 
 external/boost/include/boost/spirit/include/qi_sequence.hpp            |   23 
 external/boost/include/boost/spirit/include/qi_symbols.hpp             |   23 
 external/boost/include/boost/static_assert.hpp                         |   23 
 external/boost/include/boost/system/error_code.hpp                     |   23 
 external/boost/include/boost/unordered_map.hpp                         |   23 
 external/boost/include/boost/unordered_set.hpp                         |   23 
 external/boost/include/boost/uuid/sha1.hpp                             |   23 
 external/boost/include/boost/uuid/uuid_generators.hpp                  |   23 
 external/boost/include/boost/uuid/uuid_io.hpp                          |   23 
 external/boost/include/boost/variant.hpp                               |   23 
 external/boost/include/boost/variant/recursive_variant.hpp             |   23 
 external/boost/include/boost/version.hpp                               |   23 
 external/boost/include/boost/weak_ptr.hpp                              |   23 
 external/boost/rtti.patch.0                                            |    2 
 external/boost/ubsan.patch.0                                           |    2 
 117 files changed, 2051 insertions(+), 3358 deletions(-)

New commits:
commit e5c6574f5df8d2a5914beb03dce604beb8d62ee8
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri May 27 16:24:33 2016 +0200

    boost: warning-patch-ectomy
    
    Upstream maintainers, with few exceptions, generally don't care about
    warnings in boost headers, hence we re-base our warning fix patches on
    every upgrade, which is a pointless exercise in frustration.
    
    Most of the patches are for GCC/Clang warnings, where we could use
    -isystem to suppress the warnings (with corresponding hacks in the build
    system, because -isystem also disables dependency generation) - but
    clang-cl does not support -isystem.
    
    So generate a bunch of wrapper headers into external/boost/include, that
    disable all known warnings and use #include_next to get the real boost
    header. This allows us to get rid of most of the existing patches.
    
    There is however a bug in GCC that preprocessor warnings like -Wundef
    cannot be disabled with a #pragma, so those patches cannot be removed.
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
    
    Change-Id: I2992bf4a463015f1140489df867bd80757f84541
    Reviewed-on: https://gerrit.libreoffice.org/25563
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 8d03be3..938bfc0 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -715,6 +715,7 @@ endef
 define gb_LinkTarget__use_boost_headers
 $(call gb_LinkTarget_use_unpacked,$(1),boost)
 $(call gb_LinkTarget_set_include,$(1),\
+	$(if $(or $(COM_IS_CLANG),$(filter GCC,$(COM))),-I$(SRCDIR)/external/boost/include) \
 	-I$(call gb_UnpackedTarball_get_dir,boost) \
 	$$(INCLUDE) \
 )
diff --git a/configure.ac b/configure.ac
index 97056e7..70fabf4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8838,7 +8838,12 @@ else
     AC_MSG_RESULT([internal])
     BUILD_TYPE="$BUILD_TYPE BOOST"
     SYSTEM_BOOST=
-    BOOST_CPPFLAGS="-I${WORKDIR}/UnpackedTarball/boost"
+    if test "${COM}" = "GCC" -o "${COM_IS_CLANG}" = "TRUE"; then
+        # use warning-suppressing wrapper headers
+        BOOST_CPPFLAGS="-I$(SRCDIR)/external/boost/include -I${WORKDIR}/UnpackedTarball/boost"
+    else
+        BOOST_CPPFLAGS="-I${WORKDIR}/UnpackedTarball/boost"
+    fi
 fi
 AC_SUBST(SYSTEM_BOOST)
 
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index bedfc9a..60d4a03 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -8,77 +8,35 @@
 #
 
 boost_patches :=
-#https://svn.boost.org/trac/boost/ticket/3780
-boost_patches += boost.3780.aliasing.patch
-#http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47679
-boost_patches += boost.gcc47679.patch
-#https://svn.boost.org/trac/boost/ticket/6369
-boost_patches += boost.6369.warnings.patch
+
 #https://svn.boost.org/trac/boost/ticket/6142
 boost_patches += boost.6142.warnings.patch.1
 
-# https://svn.boost.org/trac/boost/ticket/9882
-boost_patches += boost.date_time.Wshadow.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9885
 boost_patches += boost.multi_array.C4510.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9888
-boost_patches += boost.multi_array.Wunused-local-typedefs.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9891
-boost_patches += boost.preprocessor.Wundef.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9892
-boost_patches += boost.property_tree.Wshadow.warnings.patch.1
-# https://svn.boost.org/trac/boost/ticket/9900
-boost_patches += boost.spirit.Wshadow.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9901
-boost_patches += boost.spirit.Wunused-local-typedefs.warnings.patch
-# to-do: submit upstream
-boost_patches += boost.spirit.Wunused-parameter.warnings.patch
-boost_patches += boost.date_time.Wshadow.warnings.patch.1
 # https://svn.boost.org/trac/boost/ticket/9903
 boost_patches += boost.utility.Wundef.warnings.patch
 
-# Help static analysis tools (see SAL_UNUSED_PARAMETER in sal/types.h):
-ifeq (GCC,$(COM))
-boost_patches += boost_1_44_0-unused-parameters.patch
-endif
+boost_patches += boost.type_index.Wundef.warnings.patch
 
 boost_patches += boost.auto_link.patch
-boost_patches += boost.wunused.patch
 
 boost_patches += ubsan.patch.0
 boost_patches += rtti.patch.0
 
 # https://svn.boost.org/trac/boost/ticket/11505
 boost_patches += boost_1_59_0.mpl.config.wundef.patch
-# https://svn.boost.org/trac/boost/ticket/11502
-boost_patches += boost_1_59_0.property_tree.wtype-limits.patch
-# https://svn.boost.org/trac/boost/ticket/11507
-boost_patches += boost_1_59_0.property_tree.wshadow.patch
-# https://svn.boost.org/trac/boost/ticket/11508
-boost_patches += boost_1_59_0.iostreams.wshadow.patch
-# https://svn.boost.org/trac/boost/ticket/11509
-boost_patches += boost_1_59_0.iostreams.wunused.patch
-# https://svn.boost.org/trac/boost/ticket/11506
-boost_patches += boost_1_59_0.rational.wshadow.patch
-# https://svn.boost.org/trac/boost/ticket/11511
-boost_patches += boost_1_59_0.multi_array.wshadow.patch
 # https://svn.boost.org/trac/boost/ticket/11501
 boost_patches += boost_1_59_0.property_tree.wreturn-type.patch
 
 boost_patches += clang-cl.patch.0
-boost_patches += gcc6-warnings.patch.0
 
 # This patch was already applied upstream
 # https://github.com/boostorg/math/commit/74ff2db959c5fa75bec770c41ed2951a740fe936
 boost_patches += boost_1_60_0.quadmath.patch
 boost_patches += boost_1_60_0.undef.warning.patch
-boost_patches += boost.wdeprecated-auto_ptr.patch.0
 boost_patches += boost_1_60_0.android.undef.warning.patch
 
-# <https://github.com/boostorg/format/pull/11> "BOOST_FALLTHROUGH to silence
-# Clang -Wimplicit-fallthrough":
-boost_patches += fallthrough.patch.0
-
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/external/boost/boost.3780.aliasing.patch b/external/boost/boost.3780.aliasing.patch
deleted file mode 100644
index d9cff1b..0000000
--- a/external/boost/boost.3780.aliasing.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- misc/boost_1_44_0/boost/function/function_base.hpp
-+++ misc/build/boost_1_44_0/boost/function/function_base.hpp
-@@ -314,17 +322,17 @@
-         {
-           if (op == clone_functor_tag || op == move_functor_tag) {
-             const functor_type* in_functor = 
--              reinterpret_cast<const functor_type*>(&in_buffer.data);
-+              static_cast<const functor_type*>(static_cast<void*>(&in_buffer.data));
-             new (reinterpret_cast<void*>(&out_buffer.data)) functor_type(*in_functor);
- 
-             if (op == move_functor_tag) {
--              functor_type* f = reinterpret_cast<functor_type*>(&in_buffer.data);
-+              functor_type* f = static_cast<functor_type*>(static_cast<void*>(&in_buffer.data));
-               (void)f; // suppress warning about the value of f not being used (MSVC)
-               f->~Functor();
-             }
-           } else if (op == destroy_functor_tag) {
-             // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
--             functor_type* f = reinterpret_cast<functor_type*>(&out_buffer.data);
-+             functor_type* f = static_cast<functor_type*>(static_cast<void*>(&out_buffer.data));
-              (void)f; // suppress warning about the value of f not being used (MSVC)
-              f->~Functor();
-           } else if (op == check_functor_type_tag) {
diff --git a/external/boost/boost.6369.warnings.patch b/external/boost/boost.6369.warnings.patch
deleted file mode 100644
index 545f9c0..0000000
--- a/external/boost/boost.6369.warnings.patch
+++ /dev/null
@@ -1,305 +0,0 @@
---- misc/boost_1_44_0/boost/date_time/gregorian/gregorian_io.hpp	2012-01-08 20:16:41.321760852 +0000
-+++ misc/build/boost_1_44_0/boost/date_time/gregorian/gregorian_io.hpp	2012-01-08 20:25:43.233484675 +0000
-@@ -77,14 +77,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-         
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, d);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, d);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, d);
-@@ -138,14 +138,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-         
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, dd);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, dd);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, dd);
-@@ -202,14 +202,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, dp);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, dp);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, dp);
-@@ -261,14 +261,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, m);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, m);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, m);
-@@ -318,14 +318,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, wd);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, wd);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, wd);
-@@ -359,14 +359,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, gd);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, gd);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, gd);
-@@ -400,14 +400,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, gy);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, gy);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, gy);
-@@ -458,14 +458,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, pd);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, pd);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, pd);
-@@ -515,14 +515,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, nday);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, nday);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, nday);
-@@ -573,14 +573,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, fkd);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, fkd);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, fkd);
-@@ -631,14 +631,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, lkd);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, lkd);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, lkd);
-@@ -690,14 +690,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, fka);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, fka);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, fka);
-@@ -749,14 +749,14 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false); 
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+        typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
- 
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<date_input_facet>(is.getloc())) {
--          std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, fkb);
-+        if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, fkb);
-         }
-         else {
--          date_input_facet* f = new date_input_facet();
-+          lcl_date_input_facet* f = new lcl_date_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, fkb);
---- misc/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp	2012-01-08 20:16:41.342761072 +0000
-+++ misc/build/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp	2012-01-09 09:47:25.426730124 +0000
-@@ -75,13 +75,13 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::time_input_facet<ptime, CharT> time_input_facet;
-+        typedef typename date_time::time_input_facet<ptime, CharT> lcl_time_input_facet;
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<time_input_facet>(is.getloc())) {
--          std::use_facet<time_input_facet>(is.getloc()).get(sit, str_end, is, pt);
-+        if(std::has_facet<lcl_time_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_time_input_facet>(is.getloc()).get(sit, str_end, is, pt);
-         }
-         else {
--          time_input_facet* f = new time_input_facet();
-+          lcl_time_input_facet* f = new lcl_time_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, pt);
-@@ -143,13 +143,13 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::time_input_facet<ptime, CharT> time_input_facet;
-+        typedef typename date_time::time_input_facet<ptime, CharT> lcl_time_input_facet;
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<time_input_facet>(is.getloc())) {
--          std::use_facet<time_input_facet>(is.getloc()).get(sit, str_end, is, tp);
-+        if(std::has_facet<lcl_time_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_time_input_facet>(is.getloc()).get(sit, str_end, is, tp);
-         }
-         else {
--          time_input_facet* f = new time_input_facet();
-+          lcl_time_input_facet* f = new lcl_time_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, tp);
-@@ -208,13 +208,13 @@
-     typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
-     if (strm_sentry) {
-       try {
--        typedef typename date_time::time_input_facet<ptime, CharT> time_input_facet;
-+        typedef typename date_time::time_input_facet<ptime, CharT> lcl_time_input_facet;
-         std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
--        if(std::has_facet<time_input_facet>(is.getloc())) {
--          std::use_facet<time_input_facet>(is.getloc()).get(sit, str_end, is, td);
-+        if(std::has_facet<lcl_time_input_facet>(is.getloc())) {
-+          std::use_facet<lcl_time_input_facet>(is.getloc()).get(sit, str_end, is, td);
-         }
-         else {
--          time_input_facet* f = new time_input_facet();
-+          lcl_time_input_facet* f = new lcl_time_input_facet();
-           std::locale l = std::locale(is.getloc(), f);
-           is.imbue(l);
-           f->get(sit, str_end, is, td);
diff --git a/external/boost/boost.date_time.Wshadow.warnings.patch b/external/boost/boost.date_time.Wshadow.warnings.patch
deleted file mode 100644
index 578159a..0000000
--- a/external/boost/boost.date_time.Wshadow.warnings.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- misc/boost_1_44_0/boost/date_time/date_names_put.hpp	2008-02-27 21:00:24.000000000 +0100
-+++ misc/build/boost_1_44_0/boost/date_time/date_names_put.hpp	2011-10-05 16:58:58.413575307 +0200
-@@ -218,14 +218,14 @@
-                          const charT* const weekday_long_names[],
-                          charT separator_char = '-',
-                          ymd_order_spec order_spec = ymd_order_iso,
--                         month_format_spec month_format = month_as_short_string) :
-+                         month_format_spec month_format_ = month_as_short_string) :
-         month_short_names_(month_short_names),
-         month_long_names_(month_long_names),
-         special_value_names_(special_value_names),
-         weekday_short_names_(weekday_short_names),
-         weekday_long_names_(weekday_long_names),
-         order_spec_(order_spec),
--        month_format_spec_(month_format)
-+        month_format_spec_(month_format_)
-       {
-         separator_char_[0] = separator_char;
-         separator_char_[1] = '\0';
diff --git a/external/boost/boost.date_time.Wshadow.warnings.patch.1 b/external/boost/boost.date_time.Wshadow.warnings.patch.1
deleted file mode 100644
index 4b7a911..0000000
--- a/external/boost/boost.date_time.Wshadow.warnings.patch.1
+++ /dev/null
@@ -1,117 +0,0 @@
---- a/boost/date_time/time_facet.hpp
-+++ b/boost/date_time/time_facet.hpp
-@@ -439,31 +439,31 @@
-                               time_dur_arg.get_rep().as_special());
-       }
- 
--      string_type format(m_time_duration_format);
-+      string_type local_format(m_time_duration_format);
-       if (time_dur_arg.is_negative()) {
-         // replace %- with minus sign.  Should we use the numpunct facet?
--        boost::algorithm::replace_all(format,
-+        boost::algorithm::replace_all(local_format,
-                                       duration_sign_negative_only,
-                                       negative_sign);
-           // remove all the %+ in the string with '-'
--        boost::algorithm::replace_all(format,
-+        boost::algorithm::replace_all(local_format,
-                                       duration_sign_always,
-                                       negative_sign);
-       }
-       else { //duration is positive
-         // remove all the %- combos from the string
--        boost::algorithm::erase_all(format, duration_sign_negative_only);
-+        boost::algorithm::erase_all(local_format, duration_sign_negative_only);
-         // remove all the %+ in the string with '+'
--        boost::algorithm::replace_all(format,
-+        boost::algorithm::replace_all(local_format,
-                                       duration_sign_always,
-                                       positive_sign);
-       }
- 
-       // %T and %R have to be replaced here since they are not standard
--      boost::algorithm::replace_all(format,
-+      boost::algorithm::replace_all(local_format,
-         boost::as_literal(formats_type::full_24_hour_time_format),
-         boost::as_literal(formats_type::full_24_hour_time_expanded_format));
--      boost::algorithm::replace_all(format,
-+      boost::algorithm::replace_all(local_format,
-         boost::as_literal(formats_type::short_24_hour_time_format),
-         boost::as_literal(formats_type::short_24_hour_time_expanded_format));
- 
-@@ -476,22 +476,22 @@
-        * here ourself.
-        */
-       string_type hours_str;
--      if (format.find(unrestricted_hours_format) != string_type::npos) {
-+      if (local_format.find(unrestricted_hours_format) != string_type::npos) {
-         hours_str = hours_as_string(time_dur_arg);
--        boost::algorithm::replace_all(format, unrestricted_hours_format, hours_str);
-+        boost::algorithm::replace_all(local_format, unrestricted_hours_format, hours_str);
-       }
-       // We still have to process restricted hours format specifier. In order to
-       // support parseability of durations in ISO format (%H%M%S), we'll have to
-       // restrict the stringified hours length to 2 characters.
--      if (format.find(hours_format) != string_type::npos) {
-+      if (local_format.find(hours_format) != string_type::npos) {
-         if (hours_str.empty())
-           hours_str = hours_as_string(time_dur_arg);
-         BOOST_ASSERT(hours_str.length() <= 2);
--        boost::algorithm::replace_all(format, hours_format, hours_str);
-+        boost::algorithm::replace_all(local_format, hours_format, hours_str);
-       }
- 
-       string_type frac_str;
--      if (format.find(seconds_with_fractional_seconds_format) != string_type::npos) {
-+      if (local_format.find(seconds_with_fractional_seconds_format) != string_type::npos) {
-         // replace %s with %S.nnn
-         frac_str =
-           fractional_seconds_as_string(time_dur_arg, false);
-@@ -500,21 +500,21 @@
-         string_type replace_string(seconds_format);
-         replace_string += sep;
-         replace_string += frac_str;
--        boost::algorithm::replace_all(format,
-+        boost::algorithm::replace_all(local_format,
-                                       seconds_with_fractional_seconds_format,
-                                       replace_string);
-       }
--      if (format.find(fractional_seconds_format) != string_type::npos) {
-+      if (local_format.find(fractional_seconds_format) != string_type::npos) {
-         // replace %f with nnnnnnn
-         if (!frac_str.size()) {
-           frac_str = fractional_seconds_as_string(time_dur_arg, false);
-         }
--        boost::algorithm::replace_all(format,
-+        boost::algorithm::replace_all(local_format,
-                                       fractional_seconds_format,
-                                       frac_str);
-       }
- 
--      if (format.find(fractional_seconds_or_none_format) != string_type::npos) {
-+      if (local_format.find(fractional_seconds_or_none_format) != string_type::npos) {
-         // replace %F with nnnnnnn or nothing if fs == 0
-         frac_str =
-           fractional_seconds_as_string(time_dur_arg, true);
-@@ -523,18 +523,18 @@
-           string_type replace_string;
-           replace_string += sep;
-           replace_string += frac_str;
--          boost::algorithm::replace_all(format,
-+          boost::algorithm::replace_all(local_format,
-                                         fractional_seconds_or_none_format,
-                                         replace_string);
-         }
-         else {
--          boost::algorithm::erase_all(format,
-+          boost::algorithm::erase_all(local_format,
-                                       fractional_seconds_or_none_format);
-         }
-       }
- 
-       return this->do_put_tm(next_arg, ios_arg, fill_arg,
--                       to_tm(time_dur_arg), format);
-+                       to_tm(time_dur_arg), local_format);
-     }
- 
-     OutItrT put(OutItrT next, std::ios_base& ios_arg,
diff --git a/external/boost/boost.gcc47679.patch b/external/boost/boost.gcc47679.patch
deleted file mode 100644
index 06cbd0f..0000000
--- a/external/boost/boost.gcc47679.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -ru boost.orig/boost/optional/optional.hpp boost/boost/optional/optional.hpp
---- foo/misc/boost.orig/boost/optional/optional.hpp	2015-07-18 11:27:36.168127029 +0200
-+++ foo/misc/boost/boost/optional/optional.hpp	2015-07-18 20:36:13.777997833 +0200
-@@ -53,6 +53,8 @@
- 
- #include <boost/optional/optional_fwd.hpp>
- 
-+#include <string.h>
-+
- #if (defined BOOST_NO_CXX11_RVALUE_REFERENCES) || (defined BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES)
- #define BOOST_OPTIONAL_DETAIL_NO_RVALUE_REFERENCES
- #endif
-@@ -134,6 +136,11 @@
- 
-   public:
- 
-+    aligned_storage()
-+    {
-+      memset(&dummy_, 0, sizeof(dummy_));
-+    }
-+
- #if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
-     void const* address() const { return &dummy_; }
-     void      * address()       { return &dummy_; }
-diff -ru boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp	2015-07-18 11:27:36.169127029 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp	2015-07-18 20:34:32.110998976 +0200
-@@ -218,6 +218,19 @@
-                 }
-             }
-         };
-+        template <int Radix>
-+        struct negative_accumulate<unsigned char, Radix>
-+        {
-+            //  Use this accumulator if number is negative
-+            static bool add(unsigned char& n, unsigned digit)
-+            {
-+                n *= Radix;
-+                if (n < digit)
-+                    return false;
-+                n -= digit;
-+                return true;
-+            }
-+        };
- 
-         template <int MaxDigits>
-         inline bool allow_more_digits(std::size_t i)
-diff -ru boost.orig/boost/utility/compare_pointees.hpp boost/boost/utility/compare_pointees.hpp
---- foo/misc/boost.orig/boost/utility/compare_pointees.hpp	2015-02-27 07:26:11.000000000 +0100
-+++ foo/misc/boost/boost/utility/compare_pointees.hpp	2015-07-18 20:20:41.388988458 +0200
-@@ -29,7 +29,11 @@
- inline
- bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
- {
--  return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
-+  if (!x && !y)
-+    return true;
-+  if (!x || !y)
-+    return false;
-+  return (*x) == (*y);
- }
- 
- template<class OptionalPointee>
diff --git a/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch b/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index 3edcfcc..0000000
--- a/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru boost.orig/boost/multi_array/concept_checks.hpp boost/boost/multi_array/concept_checks.hpp
---- foo/misc/boost.orig/boost/multi_array/concept_checks.hpp	2015-07-18 21:20:26.353996242 +0200
-+++ foo/misc/boost/boost/multi_array/concept_checks.hpp	2015-07-18 21:21:05.202995805 +0200
-@@ -39,8 +39,6 @@
- 
-     template <typename Array, typename IdxGen, typename Call_Type>
-     static void call(Array& a, const IdxGen& idgen, Call_Type c) {
--      typedef typename Array::index_range index_range;
--      typedef typename Array::index index;
-       idgen_helper<N-1>::call(a,idgen[c],c);
-     }
-   };
-@@ -50,8 +48,6 @@
- 
-     template <typename Array, typename IdxGen, typename Call_Type>
-     static void call(Array& a, const IdxGen& idgen, Call_Type) {
--      typedef typename Array::index_range index_range;
--      typedef typename Array::index index;
-       a[ idgen ];
-     }
-   };
diff --git a/external/boost/boost.preprocessor.Wundef.warnings.patch b/external/boost/boost.preprocessor.Wundef.warnings.patch
deleted file mode 100644
index 26d2845..0000000
--- a/external/boost/boost.preprocessor.Wundef.warnings.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -ur boost.orig/boost/preprocessor/tuple/detail/is_single_return.hpp boost/boost/preprocessor/tuple/detail/is_single_return.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/detail/is_single_return.hpp	2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/detail/is_single_return.hpp	2015-07-16 07:57:29.881981198 +0200
-@@ -16,7 +16,7 @@
- #
- # /* BOOST_PP_TUPLE_IS_SINGLE_RETURN */
- #
--# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC
-+# if BOOST_PP_VARIADICS && defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # include <boost/preprocessor/control/iif.hpp>
- # include <boost/preprocessor/facilities/is_1.hpp>
- # include <boost/preprocessor/tuple/size.hpp>
-diff -ur boost.orig/boost/preprocessor/tuple/elem.hpp boost/boost/preprocessor/tuple/elem.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/elem.hpp	2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/elem.hpp	2015-07-16 07:49:08.509986833 +0200
-@@ -24,7 +24,7 @@
- # include <boost/preprocessor/tuple/detail/is_single_return.hpp>
- #
- # if BOOST_PP_VARIADICS
--#    if BOOST_PP_VARIADICS_MSVC
-+#    if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- #        define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
- #        define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
- #        define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
-diff -ur boost.orig/boost/preprocessor/tuple/rem.hpp boost/boost/preprocessor/tuple/rem.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/rem.hpp	2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/rem.hpp	2015-07-16 07:59:19.084979971 +0200
-@@ -22,7 +22,7 @@
- # /* BOOST_PP_REM */
- #
- # if BOOST_PP_VARIADICS
--# 	 if BOOST_PP_VARIADICS_MSVC
-+# 	 if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- 		/* To be used internally when __VA_ARGS__ could be empty ( or is a single element ) */
- #    	define BOOST_PP_REM_CAT(...) BOOST_PP_CAT(__VA_ARGS__,)
- # 	 endif
-@@ -36,8 +36,8 @@
- /*
-   VC++8.0 cannot handle the variadic version of BOOST_PP_TUPLE_REM(size)
- */
--# if BOOST_PP_VARIADICS && !(BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
--# 	 if BOOST_PP_VARIADICS_MSVC
-+# if BOOST_PP_VARIADICS && !(defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
-+# 	 if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- 		/* To be used internally when the size could be 0 ( or 1 ) */
- #    	define BOOST_PP_TUPLE_REM_CAT(size) BOOST_PP_REM_CAT
- # 	 endif
-@@ -120,7 +120,7 @@
- # /* BOOST_PP_TUPLE_REM_CTOR */
- #
- # if BOOST_PP_VARIADICS
--#    if BOOST_PP_VARIADICS_MSVC
-+#    if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- #        define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
- #        define BOOST_PP_TUPLE_REM_CTOR_I(m, args) BOOST_PP_TUPLE_REM_CTOR_II(m, args)
- #        define BOOST_PP_TUPLE_REM_CTOR_II(m, args) BOOST_PP_CAT(m ## args,)
-diff -ur boost.orig/boost/preprocessor/tuple/size.hpp boost/boost/preprocessor/tuple/size.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/size.hpp	2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/size.hpp	2015-07-16 07:58:30.296980519 +0200
-@@ -18,7 +18,7 @@
- # include <boost/preprocessor/variadic/size.hpp>
- #
- # if BOOST_PP_VARIADICS
--#    if BOOST_PP_VARIADICS_MSVC
-+#    if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- #        define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE tuple,)
- #    else
- #        define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_VARIADIC_SIZE tuple
-diff -ur boost.orig/boost/preprocessor/tuple/to_list.hpp boost/boost/preprocessor/tuple/to_list.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/to_list.hpp	2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/to_list.hpp	2015-07-16 07:51:25.693985291 +0200
-@@ -24,7 +24,7 @@
- # /* BOOST_PP_TUPLE_TO_LIST */
- #
- # if BOOST_PP_VARIADICS
--#    if BOOST_PP_VARIADICS_MSVC
-+#    if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- #        define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
- #        define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args)
- #        define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
-diff -ur boost.orig/boost/preprocessor/variadic/elem.hpp boost/boost/preprocessor/variadic/elem.hpp
---- foo/misc/boost.orig/boost/preprocessor/variadic/elem.hpp	2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/variadic/elem.hpp	2015-07-16 07:54:03.513983517 +0200
-@@ -19,7 +19,7 @@
- # /* BOOST_PP_VARIADIC_ELEM */
- #
- # if BOOST_PP_VARIADICS
--#    if BOOST_PP_VARIADICS_MSVC
-+#    if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- #        define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_VARIADIC_ELEM_I(n,__VA_ARGS__)
- #        define BOOST_PP_VARIADIC_ELEM_I(n, ...) BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
- #    else
-diff -ur boost.orig/boost/preprocessor/variadic/size.hpp boost/boost/preprocessor/variadic/size.hpp
---- foo/misc/boost.orig/boost/preprocessor/variadic/size.hpp	2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/variadic/size.hpp	2015-07-16 07:52:45.303984396 +0200
-@@ -19,7 +19,7 @@
- # /* BOOST_PP_VARIADIC_SIZE */
- #
- # if BOOST_PP_VARIADICS
--#    if BOOST_PP_VARIADICS_MSVC
-+#    if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- #        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),)
- #    else
- #        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
-diff -ur boost.orig/boost/tuple/detail/tuple_basic.hpp boost/boost/tuple/detail/tuple_basic.hpp
---- foo/misc/boost.orig/boost/tuple/detail/tuple_basic.hpp	2014-05-12 01:27:34.000000000 +0200
-+++ foo/misc/boost/boost/tuple/detail/tuple_basic.hpp	2015-07-16 08:00:29.269979182 +0200
-@@ -41,7 +41,7 @@
- 
- #include "boost/detail/workaround.hpp" // needed for BOOST_WORKAROUND
- 
--#if BOOST_GCC >= 40700
-+#if defined(BOOST_GCC) && BOOST_GCC >= 40700
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
- #endif
-@@ -979,7 +979,7 @@
- } // end of namespace boost
- 
- 
--#if BOOST_GCC >= 40700
-+#if defined(BOOST_GCC) && BOOST_GCC >= 40700
- #pragma GCC diagnostic pop
- #endif
- 
diff --git a/external/boost/boost.property_tree.Wshadow.warnings.patch.1 b/external/boost/boost.property_tree.Wshadow.warnings.patch.1
deleted file mode 100644
index 64d020b..0000000
--- a/external/boost/boost.property_tree.Wshadow.warnings.patch.1
+++ /dev/null
@@ -1,320 +0,0 @@
-diff -ru boost.orig/boost/property_tree/detail/json_parser_error.hpp boost/boost/property_tree/detail/json_parser_error.hpp
---- boost.orig/boost/property_tree/detail/json_parser_error.hpp	2015-07-07 14:20:48.000000000 +0200
-+++ boost/boost/property_tree/detail/json_parser_error.hpp	2015-07-19 11:16:35.699957767 +0200
-@@ -20,10 +20,10 @@
-     class json_parser_error: public file_parser_error
-     {
-     public:
--        json_parser_error(const std::string &message, 
--                          const std::string &filename, 
--                          unsigned long line): 
--            file_parser_error(message, filename, line)
-+        json_parser_error(const std::string &message_, 
-+                          const std::string &filename_, 
-+                          unsigned long line_): 
-+            file_parser_error(message_, filename_, line_)
-         { 
-         }
-     };
-diff -ru boost.orig/boost/property_tree/detail/ptree_implementation.hpp boost/boost/property_tree/detail/ptree_implementation.hpp
---- boost.orig/boost/property_tree/detail/ptree_implementation.hpp	2015-07-07 14:20:48.000000000 +0200
-+++ boost/boost/property_tree/detail/ptree_implementation.hpp	2015-07-18 23:33:04.165906803 +0200
-@@ -568,48 +568,48 @@
- 
-     template<class K, class D, class C>
-     basic_ptree<K, D, C> &
--        basic_ptree<K, D, C>::get_child(const path_type &path)
-+        basic_ptree<K, D, C>::get_child(const path_type &path_)
-     {
--        path_type p(path);
-+        path_type p(path_);
-         self_type *n = walk_path(p);
-         if (!n) {
--            BOOST_PROPERTY_TREE_THROW(ptree_bad_path("No such node", path));
-+            BOOST_PROPERTY_TREE_THROW(ptree_bad_path("No such node", path_));
-         }
-         return *n;
-     }
- 
-     template<class K, class D, class C> inline
-     const basic_ptree<K, D, C> &
--        basic_ptree<K, D, C>::get_child(const path_type &path) const
-+        basic_ptree<K, D, C>::get_child(const path_type &path_) const
-     {
--        return const_cast<self_type*>(this)->get_child(path);
-+        return const_cast<self_type*>(this)->get_child(path_);
-     }
- 
-     template<class K, class D, class C> inline
-     basic_ptree<K, D, C> &
--        basic_ptree<K, D, C>::get_child(const path_type &path,
-+        basic_ptree<K, D, C>::get_child(const path_type &path_,
-                                         self_type &default_value)
-     {
--        path_type p(path);
-+        path_type p(path_);
-         self_type *n = walk_path(p);
-         return n ? *n : default_value;
-     }
- 
-     template<class K, class D, class C> inline
-     const basic_ptree<K, D, C> &
--        basic_ptree<K, D, C>::get_child(const path_type &path,
-+        basic_ptree<K, D, C>::get_child(const path_type &path_,
-                                         const self_type &default_value) const
-     {
--        return const_cast<self_type*>(this)->get_child(path,
-+        return const_cast<self_type*>(this)->get_child(path_,
-             const_cast<self_type&>(default_value));
-     }
- 
- 
-     template<class K, class D, class C>
-     optional<basic_ptree<K, D, C> &>
--        basic_ptree<K, D, C>::get_child_optional(const path_type &path)
-+        basic_ptree<K, D, C>::get_child_optional(const path_type &path_)
-     {
--        path_type p(path);
-+        path_type p(path_);
-         self_type *n = walk_path(p);
-         if (!n) {
-             return optional<self_type&>();
-@@ -619,9 +619,9 @@
- 
-     template<class K, class D, class C>
-     optional<const basic_ptree<K, D, C> &>
--        basic_ptree<K, D, C>::get_child_optional(const path_type &path) const
-+        basic_ptree<K, D, C>::get_child_optional(const path_type &path_) const
-     {
--        path_type p(path);
-+        path_type p(path_);
-         self_type *n = walk_path(p);
-         if (!n) {
-             return optional<const self_type&>();
-@@ -631,10 +631,10 @@
- 
-     template<class K, class D, class C>
-     basic_ptree<K, D, C> &
--        basic_ptree<K, D, C>::put_child(const path_type &path,
-+        basic_ptree<K, D, C>::put_child(const path_type &path_,
-                                         const self_type &value)
-     {
--        path_type p(path);
-+        path_type p(path_);
-         self_type &parent = force_path(p);
-         // Got the parent. Now get the correct child.
-         key_type fragment = p.reduce();
-@@ -649,10 +649,10 @@
- 
-     template<class K, class D, class C>
-     basic_ptree<K, D, C> &
--        basic_ptree<K, D, C>::add_child(const path_type &path,
-+        basic_ptree<K, D, C>::add_child(const path_type &path_,
-                                         const self_type &value)
-     {
--        path_type p(path);
-+        path_type p(path_);
-         self_type &parent = force_path(p);
-         // Got the parent.
-         key_type fragment = p.reduce();
-@@ -738,26 +738,26 @@
-     template<class K, class D, class C>
-     template<class Type, class Translator> inline
-     typename boost::enable_if<detail::is_translator<Translator>, Type>::type
--    basic_ptree<K, D, C>::get(const path_type &path,
-+    basic_ptree<K, D, C>::get(const path_type &path_,
-                               Translator tr) const
-     {
--        return get_child(path).BOOST_NESTED_TEMPLATE get_value<Type>(tr);
-+        return get_child(path_).BOOST_NESTED_TEMPLATE get_value<Type>(tr);
-     }
- 
-     template<class K, class D, class C>
-     template<class Type> inline
--    Type basic_ptree<K, D, C>::get(const path_type &path) const
-+    Type basic_ptree<K, D, C>::get(const path_type &path_) const
-     {
--        return get_child(path).BOOST_NESTED_TEMPLATE get_value<Type>();
-+        return get_child(path_).BOOST_NESTED_TEMPLATE get_value<Type>();
-     }
- 
-     template<class K, class D, class C>
-     template<class Type, class Translator> inline
--    Type basic_ptree<K, D, C>::get(const path_type &path,
-+    Type basic_ptree<K, D, C>::get(const path_type &path_,
-                                    const Type &default_value,
-                                    Translator tr) const
-     {
--        return get_optional<Type>(path, tr).get_value_or(default_value);
-+        return get_optional<Type>(path_, tr).get_value_or(default_value);
-     }
- 
-     template<class K, class D, class C>
-@@ -767,18 +767,18 @@
-         std::basic_string<Ch>
-     >::type
-     basic_ptree<K, D, C>::get(
--        const path_type &path, const Ch *default_value, Translator tr) const
-+        const path_type &path_, const Ch *default_value, Translator tr) const
-     {
--        return get<std::basic_string<Ch>, Translator>(path, default_value, tr);
-+        return get<std::basic_string<Ch>, Translator>(path_, default_value, tr);
-     }
- 
-     template<class K, class D, class C>
-     template<class Type> inline
-     typename boost::disable_if<detail::is_translator<Type>, Type>::type
--    basic_ptree<K, D, C>::get(const path_type &path,
-+    basic_ptree<K, D, C>::get(const path_type &path_,
-                               const Type &default_value) const
-     {
--        return get_optional<Type>(path).get_value_or(default_value);
-+        return get_optional<Type>(path_).get_value_or(default_value);
-     }
- 
-     template<class K, class D, class C>
-@@ -788,17 +788,17 @@
-         std::basic_string<Ch>
-     >::type
-     basic_ptree<K, D, C>::get(
--        const path_type &path, const Ch *default_value) const
-+        const path_type &path_, const Ch *default_value) const
-     {
--        return get< std::basic_string<Ch> >(path, default_value);
-+        return get< std::basic_string<Ch> >(path_, default_value);
-     }
- 
-     template<class K, class D, class C>
-     template<class Type, class Translator>
--    optional<Type> basic_ptree<K, D, C>::get_optional(const path_type &path,
-+    optional<Type> basic_ptree<K, D, C>::get_optional(const path_type &path_,
-                                                          Translator tr) const
-     {
--        if (optional<const self_type&> child = get_child_optional(path))
-+        if (optional<const self_type&> child = get_child_optional(path_))
-             return child.get().
-                 BOOST_NESTED_TEMPLATE get_value_optional<Type>(tr);
-         else
-@@ -808,9 +808,9 @@
-     template<class K, class D, class C>
-     template<class Type>
-     optional<Type> basic_ptree<K, D, C>::get_optional(
--                                                const path_type &path) const
-+                                                const path_type &path_) const
-     {
--        if (optional<const self_type&> child = get_child_optional(path))
-+        if (optional<const self_type&> child = get_child_optional(path_))
-             return child.get().BOOST_NESTED_TEMPLATE get_value_optional<Type>();
-         else
-             return optional<Type>();
-@@ -839,13 +839,13 @@
-     template<class K, class D, class C>
-     template<class Type, typename Translator>
-     basic_ptree<K, D, C> & basic_ptree<K, D, C>::put(
--        const path_type &path, const Type &value, Translator tr)
-+        const path_type &path_, const Type &value, Translator tr)
-     {
--        if(optional<self_type &> child = get_child_optional(path)) {
-+        if(optional<self_type &> child = get_child_optional(path_)) {
-             child.get().put_value(value, tr);
-             return *child;
-         } else {
--            self_type &child2 = put_child(path, self_type());
-+            self_type &child2 = put_child(path_, self_type());
-             child2.put_value(value, tr);
-             return child2;
-         }
-@@ -854,18 +854,18 @@
-     template<class K, class D, class C>
-     template<class Type> inline
-     basic_ptree<K, D, C> & basic_ptree<K, D, C>::put(
--        const path_type &path, const Type &value)
-+        const path_type &path_, const Type &value)
-     {
--        return put(path, value,
-+        return put(path_, value,
-                    typename translator_between<data_type, Type>::type());
-     }
- 
-     template<class K, class D, class C>
-     template<class Type, typename Translator> inline
-     basic_ptree<K, D, C> & basic_ptree<K, D, C>::add(
--        const path_type &path, const Type &value, Translator tr)
-+        const path_type &path_, const Type &value, Translator tr)
-     {
--        self_type &child = add_child(path, self_type());
-+        self_type &child = add_child(path_, self_type());
-         child.put_value(value, tr);
-         return child;
-     }
-@@ -873,9 +873,9 @@
-     template<class K, class D, class C>
-     template<class Type> inline
-     basic_ptree<K, D, C> & basic_ptree<K, D, C>::add(
--        const path_type &path, const Type &value)
-+        const path_type &path_, const Type &value)
-     {
--        return add(path, value,
-+        return add(path_, value,
-                    typename translator_between<data_type, Type>::type());
-     }
- 
-diff -ru boost.orig/boost/property_tree/string_path.hpp boost/boost/property_tree/string_path.hpp
---- boost.orig/boost/property_tree/string_path.hpp	2015-07-07 14:20:48.000000000 +0200
-+++ boost/boost/property_tree/string_path.hpp	2015-07-18 23:33:41.749906380 +0200
-@@ -88,14 +88,14 @@
-         typedef typename String::value_type char_type;
- 
-         /// Create an empty path.
--        explicit string_path(char_type separator = char_type('.'));
-+        explicit string_path(char_type separator_ = char_type('.'));
-         /// Create a path by parsing the given string.
-         /// @param value A sequence, possibly with separators, that describes
-         ///              the path, e.g. "one.two.three".
-         /// @param separator The separator used in parsing. Defaults to '.'.
-         /// @param tr The translator used by this path to convert the individual
-         ///           parts to keys.
--        string_path(const String &value, char_type separator = char_type('.'),
-+        string_path(const String &value, char_type separator_ = char_type('.'),
-                     Translator tr = Translator());
-         /// Create a path by parsing the given string.
-         /// @param value A zero-terminated array of values. Only use if zero-
-@@ -106,7 +106,7 @@
-         /// @param tr The translator used by this path to convert the individual
-         ///           parts to keys.
-         string_path(const char_type *value,
--                    char_type separator = char_type('.'),
-+                    char_type separator_ = char_type('.'),
-                     Translator tr = Translator());
- 
-         // Default copying doesn't do the right thing with the iterator
-@@ -162,23 +162,23 @@
-     };
- 
-     template <typename String, typename Translator> inline
--    string_path<String, Translator>::string_path(char_type separator)
--        : m_separator(separator), m_start(m_value.begin())
-+    string_path<String, Translator>::string_path(char_type separator_)
-+        : m_separator(separator_), m_start(m_value.begin())
-     {}
- 
-     template <typename String, typename Translator> inline
-     string_path<String, Translator>::string_path(const String &value,
--                                                 char_type separator,
-+                                                 char_type separator_,
-                                                  Translator tr)
--        : m_value(value), m_separator(separator),
-+        : m_value(value), m_separator(separator_),
-           m_tr(tr), m_start(m_value.begin())
-     {}
- 
-     template <typename String, typename Translator> inline
-     string_path<String, Translator>::string_path(const char_type *value,
--                                                 char_type separator,
-+                                                 char_type separator_,
-                                                  Translator tr)
--        : m_value(value), m_separator(separator),
-+        : m_value(value), m_separator(separator_),
-           m_tr(tr), m_start(m_value.begin())
-     {}
- 
diff --git a/external/boost/boost.spirit.Wshadow.warnings.patch b/external/boost/boost.spirit.Wshadow.warnings.patch
deleted file mode 100644
index ab8a526..0000000
--- a/external/boost/boost.spirit.Wshadow.warnings.patch
+++ /dev/null
@@ -1,71 +0,0 @@
---- misc/boost_1_44_0/boost/spirit/home/classic/symbols/symbols.hpp	2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/symbols/symbols.hpp	2011-02-04 16:39:19.000000000 +0100
-@@ -102,13 +102,13 @@
-     {
-         typedef typename ScannerT::iterator_t iterator_t;
-         iterator_t first = scan.first;
--        typename SetT::search_info result = SetT::find(scan);
-+        typename SetT::search_info result_ = SetT::find(scan);
- 
--        if (result.data)
-+        if (result_.data)
-             return scan.
-                 create_match(
--                    result.length,
--                    symbol_ref_t(*result.data),
-+                    result_.length,
-+                    symbol_ref_t(*result_.data),
-                     first,
-                     scan.first);
-         else
---- misc/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp	2011-02-08 09:24:50.817320629 +0000
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp	2011-02-08 09:25:20.496639901 +0000
-@@ -210,7 +210,7 @@
-             subrule_list<
-                 subrule_parser<ID2, DefT2, ContextT2>,
-                 nil_t> >
--        operator,(subrule_parser<ID2, DefT2, ContextT2> const& rhs) const
-+        operator,(subrule_parser<ID2, DefT2, ContextT2> const& rhs_) const
-         {
-             return subrule_list<
-                 self_t,
-@@ -220,7 +220,7 @@
-                         *this,
-                         subrule_list<
-                             subrule_parser<ID2, DefT2, ContextT2>, nil_t>(
--                                rhs, nil_t()));
-+                                rhs_, nil_t()));
-         }
- 
-         typename DefT::embed_t rhs;
---- misc/boost_1_44_0/boost/spirit/home/classic/debug/impl/parser_names.ipp	2012-04-10 21:23:48.599238472 +0100
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/debug/impl/parser_names.ipp	2012-04-10 21:24:02.752394878 +0100
-@@ -395,13 +395,13 @@
-             }
- 
-             bool register_node(void const *r, char const *name_to_register,
--                bool trace_node)
-+                bool trace_node_)
-             {
-                 if (infos.find(r) != infos.end())
-                     return false;
- 
-                 return infos.insert(rule_infos::value_type(r,
--                    rule_info(std::string(name_to_register), trace_node))
-+                    rule_info(std::string(name_to_register), trace_node_))
-                 ).second;
-             }
- 
---- a/a/boost/boost/spirit/home/classic/error_handling/exceptions.hpp	2013-05-17 15:57:23.722638823 +0200
-+++ a/a/boost/boost/spirit/home/classic/error_handling/exceptions.hpp	2013-05-17 15:26:32.319247352 +0200
-@@ -126,8 +126,8 @@
-         typedef unary<ParserT, parser<self_t> >         base_t;
-         typedef unary_parser_category                   parser_category_t;
- 
--        assertive_parser(ParserT const& parser, ErrorDescrT descriptor_)
--        : base_t(parser), descriptor(descriptor_) {}
-+        assertive_parser(ParserT const& parser_, ErrorDescrT descriptor_)
-+        : base_t(parser_), descriptor(descriptor_) {}
- 
-         template <typename ScannerT>
-         struct result
diff --git a/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch b/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index 78a4cb0..0000000
--- a/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -ru boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp	2015-07-18 21:46:45.774978491 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp	2015-07-18 21:59:52.339969650 +0200
-@@ -282,12 +282,12 @@
- #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
-         typedef impl::grammar_helper_base<GrammarT> helper_base_t;
-         typedef grammar_helper_list<GrammarT> helper_list_t;
--        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
- 
-         helper_list_t&  helpers =
-         grammartract_helper_list::do_(self);
- 
- # if defined(BOOST_INTEL_CXX_VERSION)
-+        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
-         for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i)
-             (*i)->undefine(self);
- # else
-diff -ru boost.orig/boost/spirit/home/classic/error_handling/exceptions.hpp boost/boost/spirit/home/classic/error_handling/exceptions.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/error_handling/exceptions.hpp	2015-07-18 21:46:45.768978491 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/error_handling/exceptions.hpp	2015-07-18 22:00:33.396969189 +0200
-@@ -140,7 +140,6 @@
-         parse(ScannerT const& scan) const
-         {
-             typedef typename parser_result<ParserT, ScannerT>::type result_t;
--            typedef typename ScannerT::iterator_t iterator_t;
- 
-             result_t hit = this->subject().parse(scan);
-             if (!hit)
diff --git a/external/boost/boost.spirit.Wunused-parameter.warnings.patch b/external/boost/boost.spirit.Wunused-parameter.warnings.patch
deleted file mode 100644
index 3487394..0000000
--- a/external/boost/boost.spirit.Wunused-parameter.warnings.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/b/boost/boost/spirit/home/classic/debug/impl/parser_names.ipp
-+++ a/b/boost/boost/spirit/home/classic/debug/impl/parser_names.ipp
-@@ -95,7 +95,7 @@
- //  from numerics.hpp
-     template <typename T, int Radix, unsigned MinDigits, int MaxDigits>
-     inline std::string
--    parser_name(uint_parser<T, Radix, MinDigits, MaxDigits> const& p)
-+    parser_name(uint_parser<T, Radix, MinDigits, MaxDigits> const&)
-     {
-         BOOST_SPIRIT_SSTREAM stream;
-         stream << Radix << ", " << MinDigits << ", " << MaxDigits;
-@@ -106,7 +106,7 @@
- 
-     template <typename T, int Radix, unsigned MinDigits, int MaxDigits>
-     inline std::string
--    parser_name(int_parser<T, Radix, MinDigits, MaxDigits> const& p)
-+    parser_name(int_parser<T, Radix, MinDigits, MaxDigits> const&)
-     {
-         BOOST_SPIRIT_SSTREAM stream;
-         stream << Radix << ", " << MinDigits << ", " << MaxDigits;
-@@ -117,7 +117,7 @@
- 
-     template <typename T, typename RealPoliciesT>
-     inline std::string
--    parser_name(real_parser<T, RealPoliciesT> const& p)
-+    parser_name(real_parser<T, RealPoliciesT> const&)
-     {
-         return std::string("real_parser");
-     }
-@@ -218,7 +218,7 @@
- //  from parser.hpp
-     template <typename DerivedT>
-     inline std::string
--    parser_name(parser<DerivedT> const& p)
-+    parser_name(parser<DerivedT> const&)
-     {
-         return std::string("parser");
-     }
-@@ -227,7 +227,7 @@
- //  from primitives.hpp
-     template <typename DerivedT>
-     inline std::string
--    parser_name(char_parser<DerivedT> const &p)
-+    parser_name(char_parser<DerivedT> const &)
-     {
-         return std::string("char_parser");
-     }
diff --git a/external/boost/boost.type_index.Wundef.warnings.patch b/external/boost/boost.type_index.Wundef.warnings.patch
new file mode 100644
index 0000000..c542924
--- /dev/null
+++ b/external/boost/boost.type_index.Wundef.warnings.patch
@@ -0,0 +1,12 @@
+diff -ru boost.orig/boost/type_index/stl_type_index.hpp boost/boost/type_index/stl_type_index.hpp
+--- foo/misc/boost.orig/boost/type_index/stl_type_index.hpp	2015-06-21 22:16:46.000000000 +0200
++++ foo/misc/boost/boost/type_index/stl_type_index.hpp	2015-07-16 22:55:42.886944806 +0200
+@@ -174,7 +174,7 @@
+ 
+ 
+ inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT {
+-#if _MSC_VER > 1600 || (__GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__))
++#if (defined(_MSC_VER) && _MSC_VER > 1600) || (__GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__))
+     return data_->hash_code();
+ #else
+     return boost::hash_range(raw_name(), raw_name() + std::strlen(raw_name()));
diff --git a/external/boost/boost.wdeprecated-auto_ptr.patch.0 b/external/boost/boost.wdeprecated-auto_ptr.patch.0
deleted file mode 100644
index cf58429..0000000
--- a/external/boost/boost.wdeprecated-auto_ptr.patch.0
+++ /dev/null
@@ -1,46 +0,0 @@
---- boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp.orig2	2015-12-15 18:24:31.318854561 +0100
-+++ boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp	2015-12-15 18:26:19.804853629 +0100
-@@ -11,6 +11,11 @@
- #if !defined BOOST_SPIRIT_GRAMMAR_IPP
- #define BOOST_SPIRIT_GRAMMAR_IPP
- 
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic push
-+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-+#endif
-+
- #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
- #include <boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp>
- #include <algorithm>
-@@ -368,4 +373,8 @@
- 
- }} // namespace boost::spirit
- 
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic pop
-+#endif
-+
- #endif
---- boost/spirit/home/classic/symbols/impl/tst.ipp.orig	2015-12-15 19:08:48.978831726 +0100
-+++ boost/spirit/home/classic/symbols/impl/tst.ipp	2015-12-15 19:09:35.064831330 +0100
-@@ -9,6 +9,11 @@
- #ifndef BOOST_SPIRIT_TST_IPP
- #define BOOST_SPIRIT_TST_IPP
- 
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic push
-+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-+#endif
-+
- ///////////////////////////////////////////////////////////////////////////////
- #include <memory> // for std::auto_ptr
- #include <boost/spirit/home/classic/core/assert.hpp>
-@@ -278,4 +283,8 @@
- 
- }} // namespace boost::spirit
- 
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic pop
-+#endif
-+
- #endif
diff --git a/external/boost/boost.wunused.patch b/external/boost/boost.wunused.patch
deleted file mode 100644
index 8a7cab4..0000000
--- a/external/boost/boost.wunused.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- foo/foo/foo/boost/multi_array/base.hpp
-+++ foo/foo/foo/boost/multi_array/base.hpp
-@@ -501,6 +501,7 @@
-       // the "far side" of the range (the top if stride is positive, the bottom
-       // if stride is negative).
-       index bound_adjustment = stride < 0 ? 1 : 0;
-+      (void) bound_adjustment;
-       BOOST_ASSERT(((index_bases[n] - bound_adjustment) <= finish) &&
-         (finish <= (index_bases[n] + index(extents[n]) - bound_adjustment)));
- #endif // BOOST_DISABLE_ASSERTS
---- foo/foo/foo/boost/unordered/detail/table.hpp
-+++ foo/foo/foo/boost/unordered/detail/table.hpp
-@@ -458,6 +458,7 @@
-             // According to 23.2.1.8, if propagate_on_container_swap is
-             // false the behaviour is undefined unless the allocators
-             // are equal.
-+            (void) other;
-             BOOST_ASSERT(node_alloc() == other.node_alloc());
-         }
- 
diff --git a/external/boost/boost_1_44_0-unused-parameters.patch b/external/boost/boost_1_44_0-unused-parameters.patch
deleted file mode 100644
index 2fd02cf..0000000
--- a/external/boost/boost_1_44_0-unused-parameters.patch
+++ /dev/null
@@ -1,1169 +0,0 @@
-diff -ru boost.orig/boost/bind/bind.hpp boost/boost/bind/bind.hpp
---- foo/misc/boost.orig/boost/bind/bind.hpp	2015-05-04 00:08:08.000000000 +0200
-+++ foo/misc/boost/boost/bind/bind.hpp	2015-07-16 22:47:55.972950054 +0200
-@@ -145,7 +145,7 @@
- 
- template<class F> struct unwrapper
- {
--    static inline F & unwrap( F & f, long )
-+    static inline F & unwrap( F & f, __attribute__ ((unused)) long )
-     {
-         return f;
-     }
-@@ -228,7 +228,7 @@
- 
-     A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
- 
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
- 
-     template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
- 
-@@ -240,22 +240,22 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+    template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
-     {
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
-     }
-@@ -284,11 +284,11 @@
- 
-     list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
- 
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
- 
-     template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
- 
-@@ -300,42 +300,42 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+    template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
-     {
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-     }
- 
--    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
-+    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a,  __attribute__ ((unused)) int )
-     {
-         return a[ base_type::a1_ ] && a[ base_type::a2_ ];
-     }
- 
--    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
-+    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a,  __attribute__ ((unused)) int ) const
-     {
-         return a[ base_type::a1_ ] && a[ base_type::a2_ ];
-     }
- 
--    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
-+    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a,  __attribute__ ((unused)) int )
-     {
-         return a[ base_type::a1_ ] || a[ base_type::a2_ ];
-     }
- 
--    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
-+    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a,  __attribute__ ((unused)) int ) const
-     {
-         return a[ base_type::a1_ ] || a[ base_type::a2_ ];
-     }
-@@ -361,13 +361,13 @@
- 
-     list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
- 
-     template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
- 
-@@ -379,22 +379,22 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+    template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
-     {
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-     }
-@@ -424,15 +424,15 @@
- 
-     list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
--
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
- 
-     template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
- 
-@@ -444,22 +444,22 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+    template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
-     {
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-     }
-@@ -490,11 +490,11 @@
- 
-     list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
- 
-     A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-     A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-@@ -512,12 +512,12 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-     }
-@@ -527,7 +527,7 @@
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-     }
-@@ -559,19 +559,19 @@
- 
-     list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
--
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
- 
-     template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
- 
-@@ -583,12 +583,12 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-     }
-@@ -598,7 +598,7 @@
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-     }
-@@ -631,21 +631,21 @@
- 
-     list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
--    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
--
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
--    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+    A7 operator[] (__attribute__ ((unused)) boost::arg<7>) const { return base_type::a7_; }
-+
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
-+    A7 operator[] (__attribute__ ((unused)) boost::arg<7> (*) ()) const { return base_type::a7_; }
- 
-     template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
- 
-@@ -657,22 +657,22 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+    template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
-     {
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-     }
-@@ -706,23 +706,23 @@
- 
-     list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
--    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
--    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
--
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
--    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
--    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+    A7 operator[] (__attribute__ ((unused)) boost::arg<7>) const { return base_type::a7_; }
-+    A8 operator[] (__attribute__ ((unused)) boost::arg<8>) const { return base_type::a8_; }
-+
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
-+    A7 operator[] (__attribute__ ((unused)) boost::arg<7> (*) ()) const { return base_type::a7_; }
-+    A8 operator[] (__attribute__ ((unused)) boost::arg<8> (*) ()) const { return base_type::a8_; }
- 
-     template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
- 
-@@ -734,22 +734,22 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+    template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
-     {
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+    template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
-     {
-         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-     }
-@@ -784,25 +784,25 @@
- 
-     list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}
- 
--    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
--    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
--    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
--    A9 operator[] (boost::arg<9>) const { return base_type::a9_; }
--
--    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
--    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
--    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
--    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
--    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
--    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
--    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
--    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
--    A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; }
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+    A7 operator[] (__attribute__ ((unused)) boost::arg<7>) const { return base_type::a7_; }
-+    A8 operator[] (__attribute__ ((unused)) boost::arg<8>) const { return base_type::a8_; }
-+    A9 operator[] (__attribute__ ((unused)) boost::arg<9>) const { return base_type::a9_; }
-+
-+    A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+    A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+    A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+    A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+    A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+    A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
-+    A7 operator[] (__attribute__ ((unused)) boost::arg<7> (*) ()) const { return base_type::a7_; }
-+    A8 operator[] (__attribute__ ((unused)) boost::arg<8> (*) ()) const { return base_type::a8_; }
-+    A9 operator[] (__attribute__ ((unused)) boost::arg<9> (*) ()) const { return base_type::a9_; }
- 
-     template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
- 
-@@ -814,22 +814,22 @@
- 
-     template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
- 
--    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
-     {
-         return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
-     }
- 
--    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
-     {
-         return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
-     }
- 
--    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+    template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
-     {
-         unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
-     }
- 

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list