model+utils: Replace boost::tuple with std::tuple in trie implementation
diff --git a/utils/trie/trie.hpp b/utils/trie/trie.hpp
index 04ed980..dd10e6d 100644
--- a/utils/trie/trie.hpp
+++ b/utils/trie/trie.hpp
@@ -30,7 +30,7 @@
 #include <boost/intrusive/set.hpp>
 #include <boost/functional/hash.hpp>
 #include <boost/interprocess/smart_ptr/unique_ptr.hpp>
-#include <boost/tuple/tuple.hpp>
+#include <tuple>
 #include <boost/foreach.hpp>
 #include <boost/mpl/if.hpp>
 
@@ -274,7 +274,7 @@
     }
   }
 
-  // inline boost::tuple<const iterator, bool, const iterator>
+  // inline std::tuple<const iterator, bool, const iterator>
   // find (const FullKey &key) const
   // {
   //   return const_cast<trie*> (this)->find (key);
@@ -286,7 +286,7 @@
    *
    * @return ->second is true if prefix in ->first is longer than key
    */
-  inline boost::tuple<iterator, bool, iterator>
+  inline std::tuple<iterator, bool, iterator>
   find(const FullKey& key)
   {
     trie* trieNode = this;
@@ -307,7 +307,7 @@
       }
     }
 
-    return boost::make_tuple(foundNode, reachLast, trieNode);
+    return std::make_tuple(foundNode, reachLast, trieNode);
   }
 
   /**
@@ -317,7 +317,7 @@
    * @return ->second is true if prefix in ->first is longer than key
    */
   template<class Predicate>
-  inline boost::tuple<iterator, bool, iterator>
+  inline std::tuple<iterator, bool, iterator>
   find_if(const FullKey& key, Predicate pred)
   {
     trie* trieNode = this;
@@ -339,7 +339,7 @@
       }
     }
 
-    return boost::make_tuple(foundNode, reachLast, trieNode);
+    return std::make_tuple(foundNode, reachLast, trieNode);
   }
 
   /**