Index: uspace/lib/cpp/include/impl/map.hpp
===================================================================
--- uspace/lib/cpp/include/impl/map.hpp	(revision 26d299061164d4ac63c6bb52db2bb31d50a3e24a)
+++ uspace/lib/cpp/include/impl/map.hpp	(revision 026cb105e118772d69603d6ea220d00635279836)
@@ -525,6 +525,9 @@
                    const map<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return lexicographical_compare(
+            lhs.begin(), lhs.end(),
+            rhs.begin(), rhs.end(),
+            lhs.value_comp()
+        );
     }
 
@@ -540,6 +543,5 @@
                    const map<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return rhs < lhs;
     }
 
@@ -548,6 +550,5 @@
                     const map<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return !(lhs < rhs);
     }
 
@@ -556,7 +557,7 @@
                     const map<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
-    }
+        return !(rhs < lhs);
+    }
+
     /**
      * 23.4.5, class template multimap:
@@ -1030,6 +1031,9 @@
                    const multimap<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return lexicographical_compare(
+            lhs.begin(), lhs.end(),
+            rhs.begin(), rhs.end(),
+            lhs.value_comp()
+        );
     }
 
@@ -1045,6 +1049,5 @@
                    const multimap<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return rhs < lhs;
     }
 
@@ -1053,6 +1056,5 @@
                     const multimap<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return !(lhs < rhs);
     }
 
@@ -1061,6 +1063,5 @@
                     const multimap<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return !(rhs < lhs);
     }
 }
Index: uspace/lib/cpp/include/impl/set.hpp
===================================================================
--- uspace/lib/cpp/include/impl/set.hpp	(revision 26d299061164d4ac63c6bb52db2bb31d50a3e24a)
+++ uspace/lib/cpp/include/impl/set.hpp	(revision 026cb105e118772d69603d6ea220d00635279836)
@@ -473,6 +473,9 @@
                    const set<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return lexicographical_compare(
+            lhs.begin(), lhs.end(),
+            rhs.begin(), rhs.end(),
+            lhs.key_comp()
+        );
     }
 
@@ -488,6 +491,5 @@
                    const set<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return rhs < lhs;
     }
 
@@ -496,6 +498,5 @@
                     const set<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return !(lhs < rhs);
     }
 
@@ -504,7 +505,7 @@
                     const set<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
-    }
+        return !(rhs < lhs);
+    }
+
     /**
      * 23.4.7, class template multiset:
@@ -942,6 +943,9 @@
                    const multiset<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return lexicographical_compare(
+            lhs.begin(), lhs.end(),
+            rhs.begin(), rhs.end(),
+            lhs.value_comp()
+        );
     }
 
@@ -957,6 +961,5 @@
                    const multiset<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return rhs < lhs;
     }
 
@@ -965,6 +968,5 @@
                     const multiset<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return !(lhs < rhs);
     }
 
@@ -973,6 +975,5 @@
                     const multiset<Key, Compare, Allocator>& rhs)
     {
-        // TODO: need lexicographical_compare
-        return false;
+        return !(rhs < lhs);
     }
 }
