build: switch to C++14

Replace our homegrown implementation of optional (based
on Boost.Optional) with optional-lite by Martin Moene.

Change-Id: I4632cbc7c705a94af0b85a335515e3430bf3cb1f
Refs: #3076
diff --git a/src/data.hpp b/src/data.hpp
index 2368017..d70f509 100644
--- a/src/data.hpp
+++ b/src/data.hpp
@@ -30,9 +30,9 @@
 
 namespace ndn {
 
-/** @brief Represents a Data packet
+/** @brief Represents a Data packet.
  */
-class Data : public PacketBase, public enable_shared_from_this<Data>
+class Data : public PacketBase, public std::enable_shared_from_this<Data>
 {
 public:
   class Error : public tlv::Error
@@ -234,14 +234,14 @@
   /** @deprecated Use @c getFinalBlock
    *  @sa MetaInfo::getFinalBlockId
    */
-  NDN_CXX_DEPRECATED
+  [[deprecated("use getFinalBlock")]]
   name::Component
   getFinalBlockId() const;
 
   /** @deprecated Use @c setFinalBlock
    *  @sa MetaInfo::setFinalBlockId
    */
-  NDN_CXX_DEPRECATED
+  [[deprecated("use setFinalBlock")]]
   Data&
   setFinalBlockId(const name::Component& finalBlockId);