diff --git a/src/logic.cpp b/src/logic.cpp
index e0e6e02..2701aa5 100644
--- a/src/logic.cpp
+++ b/src/logic.cpp
@@ -482,14 +482,14 @@
 }
 
 void
-Logic::processResetInterest(const Interest& interest)
+Logic::processResetInterest(const Interest&)
 {
   _LOG_DEBUG_ID(">> Logic::processResetInterest");
   reset(true);
 }
 
 void
-Logic::processSyncData(const Name& name, ConstBufferPtr digest, const Block& syncReply)
+Logic::processSyncData(const Name&, ConstBufferPtr digest, const Block& syncReply)
 {
   _LOG_DEBUG_ID(">> Logic::processSyncData");
   DiffStatePtr commit = make_shared<DiffState>();
@@ -502,7 +502,7 @@
     reply.wireDecode(syncReply);
 
     std::vector<MissingDataInfo> v;
-    BOOST_FOREACH(ConstLeafPtr leaf, reply.getLeaves().get<ordered>()) {
+    for (const auto& leaf : reply.getLeaves().get<ordered>()) {
       BOOST_ASSERT(leaf != nullptr);
 
       const Name& info = leaf->getSessionName();
@@ -514,10 +514,8 @@
       std::tie(isInserted, isUpdated, oldSeq) = m_state.update(info, seq);
       if (isInserted || isUpdated) {
         commit->update(info, seq);
-
         oldSeq++;
-        MissingDataInfo mdi = {info, oldSeq, seq};
-        v.push_back(mdi);
+        v.push_back({info, oldSeq, seq});
       }
     }
 
