[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