From 1987082cf9278a639d772b4f35a8ae2d34944177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Va=CC=81clav=20Slavi=CC=81k?= Date: Mon, 4 May 2015 18:04:46 +0200 Subject: [PATCH] Fix compilation with Boost 1.58 1.58 introduces strict type checking in boost::get() and while that's good in theory, the VariantUtils code makes it impractical to use. Instead, use relaxed_get() to get the old behavior. relaxed_get() didn't exist in older versions of Boost, so the code must check BOOST_VERSION. Fixes #93. --- include/VariantUtils.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/VariantUtils.h b/include/VariantUtils.h index 1e6c243..5a72e59 100644 --- a/include/VariantUtils.h +++ b/include/VariantUtils.h @@ -8,6 +8,7 @@ #define VARIANTUTILS_H #include +#include #include "Lucene.h" #include "MiscUtils.h" @@ -22,7 +23,11 @@ class LPPAPI VariantUtils { template static TYPE get(VAR var) { +#if BOOST_VERSION < 105800 return var.type() == typeid(TYPE) ? boost::get(var) : TYPE(); +#else + return var.type() == typeid(TYPE) ? boost::relaxed_get(var) : TYPE(); +#endif } template