Convert the rest of the document
Change-Id: I52ce8e0b9185c73646ecbc3afb14e5cb44f0fbc8
diff --git a/details/cpp.rst b/details/cpp.rst
new file mode 100644
index 0000000..37d47e1
--- /dev/null
+++ b/details/cpp.rst
@@ -0,0 +1,50 @@
+ptr_lib (C++)
+=============
+
+Some C++ methods need to use shared_ptr. Depending on where ./configure found shared_ptr, define the ptr_lib namespace as follows, so that the API always uses ndn::ptr_lib::shared_ptr.
+
+.. code-block:: c++
+
+ #if NDN_CPP_HAVE_STD_SHARED_PTR
+ #include
+ #include <memory>
+ namespace ndn { namespace ptr_lib = std; }
+ #elif NDN_CPP_HAVE_BOOST_SHARED_PTR
+ #include <boost/shared_ptr.hpp>
+ #include <boost/make_shared.hpp>
+ namespace ndn { namespace ptr_lib = boost; }
+ #else
+ // Use the boost header files in this distribution.
+ #include <ndnboost/shared_ptr.hpp>
+ #include <ndnboost/make_shared.hpp>
+ namespace ndn { namespace ptr_lib = ndnboost; }
+ #endif
+
+Time representation
+===================
+
+Some methods use calendar time or a time interval. These are represented as follows.
+
+Milliseconds Typedef
+--------------------
+
+(C++ only) A time interval represented as the number of milliseconds.
+
+:[C++]:
+ Namespace: `ndn`
+
+.. code-block:: c++
+
+ typedef double Milliseconds;
+
+MillisecondsSince1970 Typedef
+-----------------------------
+
+(C++ only) The calendar time represented as the number of milliseconds since 1/1/1970.
+
+:[C++]:
+ Namespace: ndn
+
+.. code-block:: c++
+
+ typedef double MillisecondsSince1970;