Listing 8: Expanding a string-access trait to other types

namespace windows
{
  class Window
  {
    ...
  };
} // namespace windows

namespace stlsoft
{
  template <>
  struct string_access_traits<windows::Window>
  {
    static char const *c_str(windows::Window const &w)
    {
      . . .
    }
    static size_t c_str(windows::Window const &w)
    {
      . . .
    }
  };
} // namespace stlsoft