Windows platform now needs boost 1.37 or higher
authorJoris Mooij <joris.mooij@tuebingen.mpg.de>
Wed, 3 Feb 2010 15:38:00 +0000 (16:38 +0100)
committerJoris Mooij <joris.mooij@tuebingen.mpg.de>
Wed, 3 Feb 2010 15:38:00 +0000 (16:38 +0100)
ChangeLog
include/dai/doc.h
include/dai/util.h

index b1ba06c..a89cb03 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+* Windows platform now needs boost 1.37 or higher
 * Implemented Tree-Reweighted BP
 * Implemented various heuristics for choosing a variable elimination sequence 
   in JTree
index 2c85683..ea2c1b1 100644 (file)
  *    - GNU make
  *    - doxygen
  *    - graphviz
- *    - recent boost C++ libraries (at least version 1.34, or 1.37 for cygwin;
+ *    - recent boost C++ libraries (at least version 1.34 if you have
+ *      a recent version of GCC, otherwise at least version 1.37; however,
  *      version 1.37 shipped with Ubuntu 9.04 is known not to work)
  * 
  *  On Debian/Ubuntu, you can easily install all these packages with a single command:
  *  \section build-windows Building libDAI under Windows
  *
  *  You need:
- *  - A recent version of MicroSoft Visual Studio (2008 works)
- *  - recent boost C++ libraries (version 1.34 or higher)
+ *  - A recent version of MicroSoft Visual Studio (2008 is known to work)
+ *  - recent boost C++ libraries (version 1.37 or higher)
  *  - GNU make (can be obtained from http://gnuwin32.sourceforge.net)
  *
  *  For the regression test, you need:
index 3e29962..fb34f6b 100644 (file)
@@ -28,7 +28,7 @@
 
 
 #if defined(WINDOWS)
-    #include <map> // an alternative would be to use boost/tr1/unordered_map.hpp
+    #include <boost/tr1/unordered_map.hpp> // only present in boost 1.37 and higher
 #elif defined(CYGWIN)
     #include <boost/tr1/unordered_map.hpp> // only present in boost 1.37 and higher
 #elif defined(MACOSX)
@@ -100,19 +100,11 @@ inline Real exp( Real x ) {
 Real max( const std::vector<Real> &v );
 
 
-#ifdef WINDOWS
-    /// hash_map is an alias for \c std::map.
-    /** Since there is no TR1 unordered_map implementation available yet, we fall back on std::map.
-     */
-    template <typename T, typename U, typename H = boost::hash<T> >
-        class hash_map : public std::map<T,U> {};
-#else
-    /// hash_map is an alias for \c std::tr1::unordered_map.
-    /** We use the (experimental) TR1 unordered_map implementation included in modern GCC distributions or in boost versions 1.37 and higher.
-     */
-    template <typename T, typename U, typename H = boost::hash<T> >
-        class hash_map : public std::tr1::unordered_map<T,U,H> {};
-#endif
+/// hash_map is an alias for \c std::tr1::unordered_map.
+/** We use the (experimental) TR1 unordered_map implementation included in modern GCC distributions or in boost versions 1.37 and higher.
+ */
+template <typename T, typename U, typename H = boost::hash<T> >
+    class hash_map : public std::tr1::unordered_map<T,U,H> {};
 
 
 /// Returns wall clock time in seconds