From 2a640484783de87a484cf313da51da9633c72fe5 Mon Sep 17 00:00:00 2001
From: Tiago Freitas Pereira <tiagofrepereira@gmail.com>
Date: Wed, 18 Feb 2015 12:38:06 +0100
Subject: [PATCH] Fixed the KMEANS PLUS PLUS bindings

---
 bob/learn/em/include/bob.learn.em/KMeansTrainer.h | 6 ------
 bob/learn/em/kmeans_trainer.cpp                   | 8 +++++++-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
index e3d53a5..de59020 100644
--- a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
+++ b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
@@ -42,12 +42,6 @@ class KMeansTrainer
      */
     KMeansTrainer(InitializationMethod=RANDOM);
 
-    /*     
-    KMeansTrainer(double convergence_threshold=0.001,
-      size_t max_iterations=10, bool compute_likelihood=true,
-      InitializationMethod=RANDOM);*/
-      
-
     /**
      * @brief Virtualize destructor
      */
diff --git a/bob/learn/em/kmeans_trainer.cpp b/bob/learn/em/kmeans_trainer.cpp
index d346272..92da9c1 100644
--- a/bob/learn/em/kmeans_trainer.cpp
+++ b/bob/learn/em/kmeans_trainer.cpp
@@ -14,7 +14,13 @@
 /******************************************************************/
 
 // InitializationMethod type conversion
-static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM",  bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}, {"KMEANS_PLUS_PLUS", bob::learn::em::KMeansTrainer::InitializationMethod::KMEANS_PLUS_PLUS}};
+
+#if BOOST_VERSION >= 104700
+  static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM",  bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM},  {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}, {"KMEANS_PLUS_PLUS", bob::learn::em::KMeansTrainer::InitializationMethod::KMEANS_PLUS_PLUS}};
+#else
+  static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM",  bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}};
+#endif
+
 static inline bob::learn::em::KMeansTrainer::InitializationMethod string2IM(const std::string& o){            /* converts string to InitializationMethod type */
   auto it = IM.find(o);
   if (it == IM.end()) throw std::runtime_error("The given InitializationMethod '" + o + "' is not known; choose one of ('RANDOM', 'RANDOM_NO_DUPLICATE', 'KMEANS_PLUS_PLUS')");
-- 
GitLab