lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] master 0c16a43 6/6: Replace boost::any with std::exp


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 0c16a43 6/6: Replace boost::any with std::experimental::any
Date: Sat, 24 Feb 2018 17:26:46 -0500 (EST)

branch: master
commit 0c16a431a7d4c135a1524a4fa4671f4e00ebdb8d
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Replace boost::any with std::experimental::any
---
 multidimgrid_any.cpp  |  4 ++--
 multidimgrid_any.hpp  | 35 ++++++++++++++++++-----------------
 multidimgrid_safe.hpp | 26 ++++++++++++++++----------
 multidimgrid_safe.tpp | 24 ++++++++++++------------
 4 files changed, 48 insertions(+), 41 deletions(-)

diff --git a/multidimgrid_any.cpp b/multidimgrid_any.cpp
index a9d89af..04e43da 100644
--- a/multidimgrid_any.cpp
+++ b/multidimgrid_any.cpp
@@ -437,7 +437,7 @@ wxGrid& MultiDimGrid::grid() const
 
 void MultiDimGrid::FixAxisValue
     (std::string const& axisName
-    ,boost::any const& value
+    ,Exp::any    const& value
     )
 {
     int sel = GetAxisIndexByName(axisName);
@@ -1154,7 +1154,7 @@ wxString MultiDimGrid::GetValue(int row, int col)
 
 std::string MultiDimGrid::DoGetValue(unsigned int row, unsigned int col) const
 {
-    boost::any value = table().GetValueAny(PrepareFixedCoords(row, col));
+    Exp::any value = table().GetValueAny(PrepareFixedCoords(row, col));
     return table().ValueToString(value);
 }
 
diff --git a/multidimgrid_any.hpp b/multidimgrid_any.hpp
index ce799a9..520654e 100644
--- a/multidimgrid_any.hpp
+++ b/multidimgrid_any.hpp
@@ -37,7 +37,7 @@
 /// control.
 ///
 /// As an added twist, each of the classes here is available in two versions:
-///      - type-unsafe but template-less version using boost::any and thus
+///      - type-unsafe but template-less version using Exp::any and thus
 ///        capable of containing any, possibly even heterogeneous, values;
 ///        these classes are called FooAny below
 ///      - type-safe version requiring to specify the value and axis types
@@ -91,8 +91,6 @@
 #include "alert.hpp"
 #include "assert_lmi.hpp"
 
-#include <boost/any.hpp>
-
 #include <wx/choice.h>
 #include <wx/grid.h>
 
@@ -102,6 +100,9 @@
 #include <utility>                      // pair
 #include <vector>
 
+#include <experimental/any>
+namespace Exp {using std::experimental::any;}
+
 class MultiDimAxisAny;
 class MultiDimAxisAnyChoice;
 class MultiDimGrid;
@@ -109,7 +110,7 @@ class MultiDimTableAny;
 class WXDLLIMPEXP_FWD_CORE wxBoxSizer;
 class WXDLLIMPEXP_FWD_CORE wxGridBagSizer;
 
-/// Type-unsafe classes using boost::any as value type
+/// Type-unsafe classes using Exp::any as value type
 /// --------------------------------------------------
 
 /// Design notes for MultiDimAxisAny
@@ -197,7 +198,7 @@ class MultiDimAxisAny
 
     virtual unsigned int GetCardinality() const = 0;
     virtual std::string  GetLabel(unsigned int n) const = 0;
-    virtual boost::any   GetValue(unsigned int n) const = 0;
+    virtual Exp::any     GetValue(unsigned int n) const = 0;
 
     virtual MultiDimAxisAnyChoice* CreateChoiceControl
         (MultiDimGrid&
@@ -287,7 +288,7 @@ class MultiDimTableAny
 {
   public:
     /// Coordinates for an element of the table
-    typedef std::vector<boost::any> Coords;
+    typedef std::vector<Exp::any> Coords;
     typedef std::shared_ptr<MultiDimAxisAny> AxisAnyPtr;
     typedef std::vector<AxisAnyPtr> AxesAny;
 
@@ -307,18 +308,18 @@ class MultiDimTableAny
     virtual void MakeVaryByDimension(unsigned int n, bool varies) = 0;
     virtual bool VariesByDimension(unsigned int n) const = 0;
 
-    boost::any GetValueAny(Coords const& coords) const;
-    void       SetValueAny(Coords const& coords, boost::any const& value);
+    Exp::any GetValueAny(Coords const& coords) const;
+    void     SetValueAny(Coords const& coords, Exp::any const& value);
 
     /// Value conversion methods to be overriden in derived classes.
-    virtual boost::any StringToValue(std::string const& value) const = 0;
-    virtual std::string ValueToString(boost::any const& value) const = 0;
+    virtual Exp::any    StringToValue(std::string const& value) const = 0;
+    virtual std::string ValueToString(Exp::any const& value) const = 0;
 
   protected:
     virtual AxesAny DoGetAxesAny() = 0;
     virtual unsigned int DoGetDimension() const = 0;
-    virtual boost::any DoGetValueAny(Coords const&) const = 0;
-    virtual void       DoSetValueAny(Coords const&, boost::any const&) = 0;
+    virtual Exp::any DoGetValueAny(Coords const&) const = 0;
+    virtual void     DoSetValueAny(Coords const&, Exp::any const&) = 0;
 
     virtual bool DoApplyAxisAdjustment(MultiDimAxisAny& axis, unsigned int n);
     virtual bool DoRefreshAxisAdjustment(MultiDimAxisAny& axis, unsigned int 
n);
@@ -357,7 +358,7 @@ inline bool MultiDimTableAny::RefreshAxisAdjustment
     EnsureValidDimensionIndex(n);
     return DoRefreshAxisAdjustment(axis, n);
 }
-inline boost::any MultiDimTableAny::GetValueAny(Coords const& coords) const
+inline Exp::any MultiDimTableAny::GetValueAny(Coords const& coords) const
 {
     if(coords.size() != GetDimension())
         {
@@ -366,8 +367,8 @@ inline boost::any MultiDimTableAny::GetValueAny(Coords 
const& coords) const
     return DoGetValueAny(coords);
 }
 inline void MultiDimTableAny::SetValueAny
-    (Coords const& coords
-    ,boost::any const& value
+    (Coords   const& coords
+    ,Exp::any const& value
     )
 {
     if(coords.size() != GetDimension())
@@ -494,7 +495,7 @@ class MultiDimGrid
         ,wxSize const& size = wxDefaultSize
         );
 
-    void FixAxisValue(std::string const& axis, boost::any const& sel);
+    void FixAxisValue(std::string const& axis, Exp::any const& sel);
     void RefreshTableData();
     bool RefreshTableAxis(std::string const& name);
     bool RefreshTableAxis();
@@ -554,7 +555,7 @@ class MultiDimGrid
         ,std::string const&
         );
 
-    /// Array of boost::any values
+    /// Array of Exp::any values
     typedef MultiDimTableAny::Coords Coords;
 
     /// Helper function used by SetValue() and GetValue() functions
diff --git a/multidimgrid_safe.hpp b/multidimgrid_safe.hpp
index 845cb90..02b8a4a 100644
--- a/multidimgrid_safe.hpp
+++ b/multidimgrid_safe.hpp
@@ -31,10 +31,16 @@
 
 #include "multidimgrid_any.hpp"
 
-#include <boost/any.hpp>
-
 #include <type_traits>
 
+#include <experimental/any>
+namespace Exp
+{
+    using std::experimental::any;
+    using std::experimental::any_cast;
+    using std::experimental::bad_any_cast;
+}
+
 /// MultiDim* type-safe classes
 /// ---------------------------
 ///
@@ -70,7 +76,7 @@ class MultiDimAxis
 
     MultiDimAxis(std::string const& name);
 
-    boost::any GetValue(unsigned int n) const override;
+    Exp::any GetValue(unsigned int n) const override;
 
   protected:
     /// Implement this function returning values of the type ValueType
@@ -222,18 +228,18 @@ class MultiDimTable
     T    DoGetValue(Coords const&) const;
     void DoSetValue(Coords const&, T const&);
 
-    /// Helper methods for unwrapping/wrapping a value from/into boost::any.
+    /// Helper methods for unwrapping/wrapping a value from/into Exp::any.
     template<typename A>
-    static A UnwrapAny(boost::any const&);
+    static A UnwrapAny(Exp::any const&);
     template<typename A>
-    static boost::any WrapAny(A const&);
+    static Exp::any WrapAny(A const&);
 
   private:
     /// MultiDimTableAny overrides.
-    boost::any DoGetValueAny(Coords const&) const override;
-    void       DoSetValueAny(Coords const&, boost::any const&) override;
-    boost::any  StringToValue(std::string const&) const override;
-    std::string ValueToString(boost::any const&) const override;
+    Exp::any    DoGetValueAny(Coords const&) const override;
+    void        DoSetValueAny(Coords const&, Exp::any const&) override;
+    Exp::any    StringToValue(std::string const&) const override;
+    std::string ValueToString(Exp::any const&) const override;
 };
 
 /// Design notes for MultiDimAdjustableAxis<AdjustControl,BaseAxisType>
diff --git a/multidimgrid_safe.tpp b/multidimgrid_safe.tpp
index a1f8a82..841c1f8 100644
--- a/multidimgrid_safe.tpp
+++ b/multidimgrid_safe.tpp
@@ -34,9 +34,9 @@ MultiDimAxis<E>::MultiDimAxis(std::string const& name)
 }
 
 template<typename E>
-boost::any MultiDimAxis<E>::GetValue(unsigned int n) const
+Exp::any MultiDimAxis<E>::GetValue(unsigned int n) const
 {
-    return boost::any(static_cast<ValueType>(DoGetValue(n)));
+    return Exp::any(static_cast<ValueType>(DoGetValue(n)));
 }
 
 /// MultiDimEnumAxis<E>
@@ -226,7 +226,7 @@ inline void MultiDimTable<T, D, C>::SetValue(Coords const& 
coords, T const& t)
 }
 
 template<typename T, typename D, typename C>
-boost::any MultiDimTable<T, D, C>::DoGetValueAny
+Exp::any MultiDimTable<T, D, C>::DoGetValueAny
     (Coords const& coords
     ) const
 {
@@ -235,15 +235,15 @@ boost::any MultiDimTable<T, D, C>::DoGetValueAny
 
 template<typename T, typename D, typename C>
 void MultiDimTable<T, D, C>::DoSetValueAny
-    (Coords const& coords
-    ,boost::any const& value
+    (Coords   const& coords
+    ,Exp::any const& value
     )
 {
     return SetValue(coords, UnwrapAny<T>(value));
 }
 
 template<typename T, typename D, typename C>
-boost::any MultiDimTable<T, D, C>::StringToValue
+Exp::any MultiDimTable<T, D, C>::StringToValue
     (std::string const& text
     ) const
 {
@@ -252,7 +252,7 @@ boost::any MultiDimTable<T, D, C>::StringToValue
 
 template<typename T, typename D, typename C>
 std::string MultiDimTable<T, D, C>::ValueToString
-    (boost::any const& value
+    (Exp::any const& value
     ) const
 {
     return static_cast<C const&>(*this).ValueToString(UnwrapAny<T>(value));
@@ -260,13 +260,13 @@ std::string MultiDimTable<T, D, C>::ValueToString
 
 template<typename T, typename D, typename C>
 template<typename A>
-A MultiDimTable<T, D, C>::UnwrapAny(boost::any const& any)
+A MultiDimTable<T, D, C>::UnwrapAny(Exp::any const& any)
 {
     try
         {
-        return boost::any_cast<A>(any);
+        return Exp::any_cast<A>(any);
         }
-    catch(boost::bad_any_cast const& e)
+    catch(Exp::bad_any_cast const& e)
         {
         alarum() << "Type mismatch : " << e.what() << LMI_FLUSH;
         throw "Unreachable--silences a compiler diagnostic.";
@@ -275,8 +275,8 @@ A MultiDimTable<T, D, C>::UnwrapAny(boost::any const& any)
 
 template<typename T, typename D, typename C>
 template<typename A>
-boost::any MultiDimTable<T, D, C>::WrapAny(A const& a)
+Exp::any MultiDimTable<T, D, C>::WrapAny(A const& a)
 {
-    return boost::any(a);
+    return Exp::any(a);
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]