## Struct template type_serializer<T, std::enable_if_t< has_serialize_v< T, serializer > >>

zeep::xml::type_serializer<T, std::enable_if_t< has_serialize_v< T, serializer > >>

## Synopsis

    // In header: <zeep/xml/serialize.hpp>

    template<typename T>
    struct type_serializer<T, std::enable_if_t< has_serialize_v< T, serializer > >> {
      // types
      typedef typename std::remove_const_t< typename std::remove_reference_t< T > > value_type;

      // public static functions
      static const char * type_name();
      static type_serializer & instance();
      static void serialize_child(element &, const char *, const value_type &);
      static void deserialize_child(const element &, const char *, value_type &);
      static element schema(const std::string &, const std::string &);
      static void register_type(type_map &);

      // public member functions
      void type_name(const std::string &);

      // public data members
      std::string m_type_name;
    };

## Description

### `type_serializer` public static functions

1.     static const char * type_name();

2.     static type_serializer & instance();

3.     static void serialize_child(element & n, const char * name,
                                   const value_type & value);

4.     static void deserialize_child(const element & n, const char * name,
                                     value_type & value);

5.     static element schema(const std::string & name, const std::string & prefix);

6.     static void register_type(type_map & types);

### `type_serializer` public member functions

1.     void type_name(const std::string & name);