[mlpack-git] master: Fix syntax and include errors. (6d9a46d)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Fri Jul 10 18:59:12 EDT 2015


Repository : https://github.com/mlpack/mlpack

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/4a97187bbba7ce8a6191b714949dd818ef0f37d2...e5905e62c15d1bcff21e6359b11efcd7ab6d7ca0

>---------------------------------------------------------------

commit 6d9a46dca869ea7bd5dac3ac5cea08a4ab803bee
Author: ryan <ryan at ratml.org>
Date:   Wed Apr 15 14:52:23 2015 -0400

    Fix syntax and include errors.


>---------------------------------------------------------------

6d9a46dca869ea7bd5dac3ac5cea08a4ab803bee
 src/mlpack/core/data/extension.hpp          |  2 +-
 src/mlpack/core/data/load.hpp               |  4 +++-
 src/mlpack/core/data/load_impl.hpp          | 17 ++++++++++-----
 src/mlpack/core/data/save.hpp               |  4 +++-
 src/mlpack/core/data/save_impl.hpp          | 20 ++++++++++++-----
 src/mlpack/core/data/serialization_shim.hpp | 34 ++++++++++++++++-------------
 6 files changed, 53 insertions(+), 28 deletions(-)

diff --git a/src/mlpack/core/data/extension.hpp b/src/mlpack/core/data/extension.hpp
index 0d82aea..dd49908 100644
--- a/src/mlpack/core/data/extension.hpp
+++ b/src/mlpack/core/data/extension.hpp
@@ -13,7 +13,7 @@
 namespace mlpack {
 namespace data {
 
-std::string Extension(const std::string& filename)
+inline std::string Extension(const std::string& filename)
 {
   const size_t ext = filename.rfind('.');
   std::string extension;
diff --git a/src/mlpack/core/data/load.hpp b/src/mlpack/core/data/load.hpp
index c1bc1d2..ff620b9 100644
--- a/src/mlpack/core/data/load.hpp
+++ b/src/mlpack/core/data/load.hpp
@@ -13,6 +13,8 @@
 #include <mlpack/core/arma_extend/arma_extend.hpp> // Includes Armadillo.
 #include <string>
 
+#include "format.hpp"
+
 namespace mlpack {
 namespace data /** Functions to load and save matrices and models. */ {
 
@@ -81,8 +83,8 @@ bool Load(const std::string& filename,
  */
 template<typename T>
 bool Load(const std::string& filename,
-          T& t,
           const std::string& name,
+          T& t,
           const bool fatal = false,
           format f = format::autodetect);
 
diff --git a/src/mlpack/core/data/load_impl.hpp b/src/mlpack/core/data/load_impl.hpp
index 95b6826..53d68a3 100644
--- a/src/mlpack/core/data/load_impl.hpp
+++ b/src/mlpack/core/data/load_impl.hpp
@@ -14,6 +14,13 @@
 #include <algorithm>
 #include <mlpack/core/util/timers.hpp>
 
+#include <boost/serialization/serialization.hpp>
+#include <boost/archive/xml_iarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/binary_iarchive.hpp>
+
+#include "serialization_shim.hpp"
+
 namespace mlpack {
 namespace data {
 
@@ -240,8 +247,8 @@ bool Load(const std::string& filename,
 // Load a model from file.
 template<typename T>
 bool Load(const std::string& filename,
-          T& t,
           const std::string& name,
+          T& t,
           const bool fatal,
           format f)
 {
@@ -285,22 +292,22 @@ bool Load(const std::string& filename,
     if (f == format::xml)
     {
       boost::archive::xml_iarchive ar(ifs);
-      ar >> util::CreateNVP(t, name);
+      ar >> CreateNVP(t, name);
     }
     else if (f == format::text)
     {
       boost::archive::text_iarchive ar(ifs);
-      ar >> util::CreateNVP(t, name);
+      ar >> CreateNVP(t, name);
     }
     else if (f == format::binary)
     {
       boost::archive::binary_iarchive ar(ifs);
-      ar >> util::CreateNVP(t, name);
+      ar >> CreateNVP(t, name);
     }
 
     return true;
   }
-  catch (boost::serialization::archive_exception& e)
+  catch (boost::archive::archive_exception& e)
   {
     if (fatal)
       Log::Fatal << e.what() << std::endl;
diff --git a/src/mlpack/core/data/save.hpp b/src/mlpack/core/data/save.hpp
index 10b64b1..04f21b5 100644
--- a/src/mlpack/core/data/save.hpp
+++ b/src/mlpack/core/data/save.hpp
@@ -13,6 +13,8 @@
 #include <mlpack/core/arma_extend/arma_extend.hpp> // Includes Armadillo.
 #include <string>
 
+#include "format.hpp"
+
 namespace mlpack {
 namespace data /** Functions to load and save matrices. */ {
 
@@ -78,8 +80,8 @@ bool Save(const std::string& filename,
  */
 template<typename T>
 bool Save(const std::string& filename,
-          T& t,
           const std::string& name,
+          T& t,
           const bool fatal = false,
           format f = format::autodetect);
 
diff --git a/src/mlpack/core/data/save_impl.hpp b/src/mlpack/core/data/save_impl.hpp
index 019ff83..393dfdd 100644
--- a/src/mlpack/core/data/save_impl.hpp
+++ b/src/mlpack/core/data/save_impl.hpp
@@ -9,6 +9,14 @@
 
 // In case it hasn't already been included.
 #include "save.hpp"
+#include "extension.hpp"
+
+#include <boost/serialization/serialization.hpp>
+#include <boost/archive/xml_oarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/binary_oarchive.hpp>
+
+#include "serialization_shim.hpp"
 
 namespace mlpack {
 namespace data {
@@ -161,8 +169,8 @@ bool Save(const std::string& filename,
 //! Save a model to file.
 template<typename T>
 bool Save(const std::string& filename,
-          T& t,
           const std::string& name,
+          T& t,
           const bool fatal,
           format f)
 {
@@ -206,20 +214,22 @@ bool Save(const std::string& filename,
     if (f == format::xml)
     {
       boost::archive::xml_oarchive ar(ofs);
-      ar << util::CreateNVP(t, name);
+      ar << CreateNVP(t, name);
     }
     else if (f == format::text)
     {
       boost::archive::text_oarchive ar(ofs);
-      ar << util::CreateNVP(t, name);
+      ar << CreateNVP(t, name);
     }
     else if (f == format::binary)
     {
       boost::archive::binary_oarchive ar(ofs);
-      ar << util::CreateNVP(t, name);
+      ar << CreateNVP(t, name);
     }
+
+    return true;
   }
-  catch (boost::serialization::archive_exception& e)
+  catch (boost::archive::archive_exception& e)
   {
     if (fatal)
       Log::Fatal << e.what() << std::endl;
diff --git a/src/mlpack/core/data/serialization_shim.hpp b/src/mlpack/core/data/serialization_shim.hpp
index 7f5904a..b543fb3 100644
--- a/src/mlpack/core/data/serialization_shim.hpp
+++ b/src/mlpack/core/data/serialization_shim.hpp
@@ -13,10 +13,11 @@
 
 #include <mlpack/prereqs.hpp>
 #include <boost/serialization/serialization.hpp>
-#include "sfinae_utility.hpp"
+#include <boost/archive/xml_oarchive.hpp>
+#include <mlpack/core/util/sfinae_utility.hpp>
 
 namespace mlpack {
-namespace util {
+namespace data {
 
 // This gives us a HasSerialize<T, U> type (where U is a function pointer) we
 // can use with SFINAE to catch when a type has a Serialize() function.
@@ -52,10 +53,10 @@ template<typename T> class SecondShim;
 template<typename T>
 inline FirstShim<T> CreateNVP(
     T& t,
-    const char* name,
+    const std::string& name,
     typename boost::enable_if<boost::is_class<T>>::type* = 0,
     typename boost::enable_if<HasSerialize<T,
-        void(T::*)(boost::archive::xml_oarchive& const unsigned int)>>::
+        void(T::*)(boost::archive::xml_oarchive&, const unsigned int)>>::
         type* = 0)
 {
   return FirstShim<T>(t, name);
@@ -89,12 +90,13 @@ const // Imitate the boost::serialization make_nvp() function.
 #endif
 boost::serialization::nvp<T> CreateNVP(
     T& t,
-    const char* name,
+    const std::string& name,
     typename boost::enable_if<boost::is_class<T>>::type* = 0,
     typename boost::disable_if<HasSerialize<T,
-void(T::*)(boost::archive::xml_oarchive&, const unsigned int)>>::type* = 0)
+        void(T::*)(boost::archive::xml_oarchive&, const unsigned int)>>::
+        type* = 0)
 {
-  return boost::serialization::make_nvp(name, t);
+  return boost::serialization::make_nvp(name.c_str(), t);
 }
 
 /**
@@ -124,10 +126,10 @@ const // Imitate the boost::serialization make_nvp() function.
 #endif
 boost::serialization::nvp<T> CreateNVP(
     T& t,
-    const char* name,
+    const std::string& name,
     typename boost::disable_if<boost::is_class<T>>::type* = 0)
 {
-  return boost::serialization::make_nvp(name, t);
+  return boost::serialization::make_nvp(name.c_str(), t);
 }
 
 /**
@@ -139,10 +141,10 @@ template<typename T>
 struct FirstShim
 {
   //! Construct the first shim with the given object and name.
-  FirstShim(T& t, const char* name) : t(t), name(name) { }
+  FirstShim(T& t, const std::string& name) : t(t), name(name) { }
 
   T& t;
-  const char* name;
+  const std::string& name;
 };
 
 /**
@@ -162,6 +164,8 @@ struct SecondShim
   {
     t.Serialize(ar, version);
   }
+
+  T& t;
 };
 
 /**
@@ -175,7 +179,7 @@ template<typename Archive, typename T>
 Archive& operator<<(Archive& ar, FirstShim<T> t)
 {
   SecondShim<T> sh(t.t);
-  return (ar << boost::serialization::make_nvp(t.name, sh));
+  return (ar << boost::serialization::make_nvp(t.name.c_str(), sh));
 }
 
 /**
@@ -189,7 +193,7 @@ template<typename Archive, typename T>
 Archive& operator&(Archive& ar, FirstShim<T> t)
 {
   SecondShim<T> sh(t.t);
-  return (ar & boost::serialization::make_nvp(t.name, sh));
+  return (ar & boost::serialization::make_nvp(t.name.c_str(), sh));
 }
 
 /**
@@ -203,10 +207,10 @@ template<typename Archive, typename T>
 Archive& operator>>(Archive& ar, FirstShim<T> t)
 {
   SecondShim<T> sh(t.t);
-  return (ar >> boost::serialization::make_nvp(t.name, sh));
+  return (ar >> boost::serialization::make_nvp(t.name.c_str(), sh));
 }
 
-} // namespace util
+} // namespace data 
 } // namespace mlpack
 
 #endif



More information about the mlpack-git mailing list