diff --git a/ndn-cpp/encoding/der/visitor/no-arguments-visitor.cpp b/ndn-cpp/encoding/der/visitor/no-arguments-visitor.cpp
new file mode 100644
index 0000000..3ea819d
--- /dev/null
+++ b/ndn-cpp/encoding/der/visitor/no-arguments-visitor.cpp
@@ -0,0 +1,53 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Yingdi Yu <yingdi@cs.ucla.edu>
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "no-arguments-visitor.hpp"
+
+namespace ndn {
+
+namespace der
+{
+Any
+NoArgumentsVisitor::visit(DerBool& derBool)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerInteger& derInteger)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerPrintableString& derPStr)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerBitString& derBStr)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerNull& derNull)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerOctetString& derOStr)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerOid& derOid)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerSequence& derSeq)
+{ return  Any(0); }
+
+Any 
+NoArgumentsVisitor::visit(DerGtime& derGtime)
+{ return  Any(0); }
+
+} // der
+
+}
diff --git a/ndn-cpp/encoding/der/visitor/void-visitor.cpp b/ndn-cpp/encoding/der/visitor/void-visitor.cpp
new file mode 100644
index 0000000..a0bcf00
--- /dev/null
+++ b/ndn-cpp/encoding/der/visitor/void-visitor.cpp
@@ -0,0 +1,53 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Yingdi Yu <yingdi@cs.ucla.edu>
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "void-visitor.hpp"
+
+namespace ndn {
+
+namespace der {
+
+void 
+VoidVisitor::visit(DerBool& derBool, Any)
+{}
+
+void
+VoidVisitor::visit(DerInteger& derInteger, Any)
+{}
+
+void 
+VoidVisitor::visit(DerPrintableString& derPStr, Any)
+{}
+
+void 
+VoidVisitor::visit(DerBitString& derBStr, Any)
+{}
+
+void
+VoidVisitor::visit(DerNull& derNull, Any)
+{}
+
+void 
+VoidVisitor::visit(DerOctetString& derOStr, Any)
+{}
+
+void
+VoidVisitor::visit(DerOid& derOid, Any)
+{}
+
+void 
+VoidVisitor::visit(DerSequence& derSequence, Any)
+{}
+
+void 
+VoidVisitor::visit(DerGtime& derGtime, Any)
+{}
+
+} // der
+
+}
