tring&gt;
#include &lt;iostream&gt;

////////////////////////////////////////////////////////////////////////////////

namespace stlplus
{

  template&lt;typename T, typename S&gt;
  void print_shared_ptr(std::ostream&amp; device,
                        const std::shared_ptr&lt;T&gt;&amp; value,
                        S print_fn,
                        const std::string&amp; empty_string = &quot;&lt;empty&gt;&quot;,
                        const std::string&amp; null_string = &quot;&lt;null&gt;&quot;,
  