diff --git a/utils/trie/trie-with-policy.hpp b/utils/trie/trie-with-policy.hpp
index 790dd0f..d6b00b3 100644
--- a/utils/trie/trie-with-policy.hpp
+++ b/utils/trie/trie-with-policy.hpp
@@ -71,7 +71,7 @@
   {
     iterator foundItem, lastItem;
     bool reachLast;
-    boost::tie(foundItem, reachLast, lastItem) = trie_.find(key);
+    std::tie(foundItem, reachLast, lastItem) = trie_.find(key);
 
     if (!reachLast || lastItem->payload() == PayloadTraits::empty_payload)
       return; // nothing to invalidate
@@ -118,7 +118,7 @@
   {
     iterator foundItem, lastItem;
     bool reachLast;
-    boost::tie(foundItem, reachLast, lastItem) = trie_.find(key);
+    std::tie(foundItem, reachLast, lastItem) = trie_.find(key);
 
     if (!reachLast || lastItem->payload() == PayloadTraits::empty_payload)
       return end();
@@ -134,7 +134,7 @@
   {
     iterator foundItem, lastItem;
     bool reachLast;
-    boost::tie(foundItem, reachLast, lastItem) = trie_.find(key);
+    std::tie(foundItem, reachLast, lastItem) = trie_.find(key);
     if (foundItem != trie_.end()) {
       policy_.lookup(s_iterator_to(foundItem));
     }
@@ -150,7 +150,7 @@
   {
     iterator foundItem, lastItem;
     bool reachLast;
-    boost::tie(foundItem, reachLast, lastItem) = trie_.find_if(key, pred);
+    std::tie(foundItem, reachLast, lastItem) = trie_.find_if(key, pred);
     if (foundItem != trie_.end()) {
       policy_.lookup(s_iterator_to(foundItem));
     }
@@ -175,7 +175,7 @@
   {
     iterator foundItem, lastItem;
     bool reachLast;
-    boost::tie(foundItem, reachLast, lastItem) = trie_.find(key);
+    std::tie(foundItem, reachLast, lastItem) = trie_.find(key);
 
     // guard in case we don't have anything in the trie
     if (lastItem == trie_.end())
@@ -202,7 +202,7 @@
   {
     iterator foundItem, lastItem;
     bool reachLast;
-    boost::tie(foundItem, reachLast, lastItem) = trie_.find(key);
+    std::tie(foundItem, reachLast, lastItem) = trie_.find(key);
 
     // guard in case we don't have anything in the trie
     if (lastItem == trie_.end())
@@ -233,7 +233,7 @@
   {
     iterator foundItem, lastItem;
     bool reachLast;
-    boost::tie(foundItem, reachLast, lastItem) = trie_.find(key);
+    std::tie(foundItem, reachLast, lastItem) = trie_.find(key);
 
     // guard in case we don't have anything in the trie
     if (lastItem == trie_.end())
