Further reduce the use of std::bind()

And also avoid deprecated ndn-cxx type aliases

Change-Id: I87e903b9671a3cf1c1b9ab30d4594d595c3c6da9
diff --git a/daemon/rib/rib.cpp b/daemon/rib/rib.cpp
index 1d002a1..952cc9a 100644
--- a/daemon/rib/rib.cpp
+++ b/daemon/rib/rib.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2023,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -410,14 +410,16 @@
   UpdateQueueItem item = std::move(m_updateBatches.front());
   m_updateBatches.pop_front();
 
-  RibUpdateBatch& batch = item.batch;
-
   // Until task #1698, each RibUpdateBatch contains exactly one RIB update
-  BOOST_ASSERT(batch.size() == 1);
+  BOOST_ASSERT(item.batch.size() == 1);
 
-  auto fibSuccessCb = std::bind(&Rib::onFibUpdateSuccess, this, batch, _1, item.managerSuccessCallback);
-  auto fibFailureCb = std::bind(&Rib::onFibUpdateFailure, this, item.managerFailureCallback, _1, _2);
-  m_fibUpdater->computeAndSendFibUpdates(batch, fibSuccessCb, fibFailureCb);
+  m_fibUpdater->computeAndSendFibUpdates(item.batch,
+    [this, batch = item.batch, successCb = item.managerSuccessCallback] (const auto& routes) {
+      onFibUpdateSuccess(batch, routes, successCb);
+    },
+    [this, failureCb = item.managerFailureCallback] (const auto& code, const auto& error) {
+      onFibUpdateFailure(failureCb, code, error);
+    });
 }
 
 void