## Class element

zeep::json::element

## Synopsis

    // In header: <zeep/json/element.hpp>

    class element {
    public:
      // types
      typedef                       ;
      typedef                    ;
      typedef element > ;
      typedef element >           ;
      typedef                       ;
      typedef                           ;
      typedef                            ;
      typedef                              ;
      typedef element *                        ;
      typedef element *                  ;
      typedef                    ;
      typedef                       ;
      typedef                       ;
      typedef element &                        ;
      typedef element &                  ;
      typedef                       ;
      typedef                       ;
      typedef                       ;

      // member classes/structs/unions

      union element_data {
        // construct/copy/destruct
        () = ;
        () ;
        () ;
        () ;
        ();
        ();
        ();
        ();
        ();
        ();
        ();

        // public member functions
         () ;

        // public data members
         m_object;
         m_array;
         m_string;
         m_int;
         m_float;
         m_boolean;
      };

      // construct/copy/destruct
      ();
      ( = );
      (element &);
      (element &&);
      template<typename ElementRef,   = > ();
      template<typename T,
               typename U,
                 = >
        () ;
      ();
      (, element &);
      element & (element) ;
      ~();

      // private static functions
      template<typename T,  Args>  ();

      // public member functions
       () ;
       () ;
       () ;
       () ;
       () ;
       () ;
       () ;
       () ;
       () ;
       () ;
       () ;
       () ;
      () ;
      reference ();
      const_reference () ;
      reference ();
      const_reference () ;
      reference ();
      const_reference () ;
      reference ();
      const_reference () ;
      iterator () ;
      iterator () ;
      const_iterator () ;
      const_iterator () ;
      const_iterator () ;
      const_iterator () ;
      reference ();
      const_reference () ;
      reference ();
      const_reference () ;
       () ;
      iterator (const_iterator, element &);
      iterator (const_iterator, element &&);
      iterator (const_iterator, , element &);
      iterator (const_iterator, const_iterator, const_iterator);
      iterator (const_iterator, );
       (const_iterator, const_iterator);
       (element &&);
       (element &);
      template< Args> iterator,  ();
      template< Args>  ();
      template<typename Iterator,
               typename std::enable_if_t< std::is_same_v< Iterator, iterator > or std::is_same_v< Iterator, const_iterator >, int >>
         ();
      template<typename Iterator,
               typename std::enable_if_t< std::is_same_v< Iterator, iterator > or std::is_same_v< Iterator, const_iterator >, int >>
         (, );
       ();
       ();
       (reference) ;
      template<typename T> const_iterator () ;
       (element) ;
      iteration_proxy< iterator > () ;
      iteration_proxy< const_iterator > () ;
       () ;
       () ;
       () ;
      element & ();
      template<typename P,
               typename std::enable_if_t< std::is_pointer_v< P >, int >>
         () ;
      template<typename P,
               typename std::enable_if_t< std::is_pointer_v< P > and std::is_const_v< typename std::remove_pointer_t< P > >, int >>
         () ;
      template<typename T,
               typename U,
                 = >
         () ;
      template<>  () ;

      // public static functions
      element ();
      element ();
      element ();
      element ();

      // private member functions
      template< Args> iterator (const_iterator, );
       () ;

      () ;
       () ;
       () ;
       () ;

      () ;
       () ;
       () ;
       () ;
       () ;
       () ;

      () ;
       () ;

      // public data members
       m_type;
       m_data;
    };

## Description

### `element` public construct/copy/destruct

1.     ( t);

   empty constructor with a certain type

2.     ( = );

   default constructor

3.     (element & j);

4.     (element && j);

5.     template<typename ElementRef,   = > ( r);

6.     template<typename T,
                typename U,
                  = >
         ( v) ;

7.     ( init);

8.     ( cnt, element & v);

9.     element & (element j) ;

10.     ~();

### `element` private static functions

1.     template<typename T,  Args>  ( args);

### `element` public member functions

1.      () ;

2.      () ;

3.      () ;

4.      () ;

5.      () ;

6.      () ;

7.      () ;

8.      () ;

9.      () ;

10.      () ;

11.      () ;

12.      () ;

13.     () ;

14.     reference ( key);

15.     const_reference ( key) ;

16.     reference ( key);

17.     const_reference ( key) ;

18.     reference ( index);

19.     const_reference ( index) ;

20.     reference ( index);

21.     const_reference ( index) ;

22.     iterator () ;

23.     iterator () ;

24.     const_iterator () ;

25.     const_iterator () ;

26.     const_iterator () ;

27.     const_iterator () ;

28.     reference ();

29.     const_reference () ;

30.     reference ();

31.     const_reference () ;

32.      () ;

33.     iterator (const_iterator pos, element & val);

34.     iterator (const_iterator pos, element && val);

35.     iterator (const_iterator pos,  cnt, element & val);

36.     iterator (const_iterator pos, const_iterator first, const_iterator last);

37.     iterator (const_iterator pos,  lst);

38.      (const_iterator first, const_iterator last);

39.      (element && val);

40.      (element & val);

41.     template< Args>
          iterator,  ( args);

42.     template< Args>  ( args);

43.     template<typename Iterator,
                 typename std::enable_if_t< std::is_same_v< Iterator, iterator > or std::is_same_v< Iterator, const_iterator >, int >>
           ( pos);

44.     template<typename Iterator,
                 typename std::enable_if_t< std::is_same_v< Iterator, iterator > or std::is_same_v< Iterator, const_iterator >, int >>
           ( first,  last);

45.      ( key);

46.      ( index);

47.      (reference other) ;

48.     template<typename T> const_iterator ( key) ;

49.      (element test) ;

50.     iteration_proxy< iterator > () ;

51.     iteration_proxy< const_iterator > () ;

52.      () ;

53.      () ;

54.      () ;

55.     element & ();

56.     template<typename P,
                 typename std::enable_if_t< std::is_pointer_v< P >, int >>
           () ;

57.     template<typename P,
                 typename std::enable_if_t< std::is_pointer_v< P > and std::is_const_v< typename std::remove_pointer_t< P > >, int >>
           () ;

58.     template<typename T,
                 typename U,
                   = >
           () ;

59.     template<>  () ;

### `element` public static functions

1.     element ();

2.     element ();

3.     element ( init);

4.     element ( init);

### `element` private member functions

1.     template< Args>
         iterator (const_iterator pos,  args);

2.      () ;

3.      () ;

4.      () ;

5.      () ;

6.      () ;

7.      () ;

8.      () ;

9.      () ;

10.      () ;

11.      () ;

12.      () ;

13.     () ;

14.      () ;